2017-02-17 110 views
1

我想從php的xml元素中獲取屬性值類型(ss:Name)。 但它不起作用。如何使用php從xml元素獲取屬性值類型(ss:Name)

這是我的xml文件:

<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:html="http://www.w3.org/TR/REC-html40" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<Worksheet ss:Name="097-097-024"> 
</Worksheet> 
</Workbook> 

和我的PHP源

<?php 
$xml = simplexml_load_file($fichier); 
$attr = $xml->Worksheet->Workbook->attributes(); 
echo $attr['ss:Name']; 
?> 

你能幫我拿到SS:名稱值?

感謝

回答

0

你的屬性ss的前綴是一個命名空間。

您可以通過請求其作爲論據Attributes()像這樣搶命名空間屬性:

$節點 - >屬性(「甕:架構 - 微軟COM:辦公室:電子表格」);

$xml = '<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:html="http://www.w3.org/TR/REC-html40" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<Worksheet ss:Name="097-097-024"> 
</Worksheet> 
</Workbook>'; 

$xml = simplexml_load_string($xml); 
foreach($xml->Worksheet->Attributes('urn:schemas-microsoft-com:office:spreadsheet') as $key=>$val) { 
    echo "$key: $val\n"; 
} 

輸出

名稱:097-097-024

也注意到,您的頂層節點是WorksheetWorksheet->Workbook