2013-12-18 57 views
0

這裏是簡單的XML文件,我需要獲取unitCode的值,我使用DOMXPath對象來獲取值。如何在DOM中使用PHP從xml文件中獲取XML元素屬性的值

<cbc:ConsumerUnitQuantity unitCode="BX"> 
    80.000 
</cbc:ConsumerUnitQuantity> 

我曾嘗試

$unitCode = $xpath->query('//cbc:ConsumerUnitQuantity [@unitCode=""]')->item(0); 
+0

你可以用'cbc'命名空間定義粘貼更完整的XML示例嗎? –

回答

1

你缺少的命名空間。您的XML元素有一個名稱空間前綴,但是您沒有在Xpath對象上註冊一個。檢查文檔中的xmlns:cbc屬性。

$xml = <<<'XML' 
<cbc:ConsumerUnitQuantity xmlns:cbc="your-namespace" unitCode="BX"> 
    80.000 
</cbc:ConsumerUnitQuantity> 
XML; 

$dom = new DOMDocument(); 
$dom->loadXml($xml); 

$xpath = new DOMXpath($dom); 
$xpath->registerNamespace('ns-cbc', 'your-namespace'); 

var_dump(
    $xpath->evaluate('string(//ns-cbc:ConsumerUnitQuantity)', NULL, FALSE) 
); 

不像DOMXpath::query()DOMXpath::evaluate()可以直接返回標量值。

相關問題