我有以下代码:
<?php
$xmlString = '
<SHOP xmlns="http://www.example.com/ns/offer/1.0">
<SHOPITEM>
<ID>1</ID>
<PRODUCT>T-shirt</PRODUCT>
<PRICE>19,22</PRICE>
</SHOPITEM>
<SHOPITEM>
<ID>2</ID>
<PRODUCT>Trousers</PRODUCT>
<PRICE>87,54</PRICE>
</SHOPITEM>
</SHOP>';
$xml = simplexml_load_string($xmlString);
$x_s_products = $xml->xpath("/SHOP/SHOPITEM");
$cnt_x_products = count($x_s_products);
echo $cnt_x_products;
?>
问题是
$cnt_x_products
为0。但这不是事实。如果删除xmlns属性,一切正常。但我必须在此具有此属性。感谢您的意见。 最佳答案
使用名称空间时,必须register该名称空间:
$xml->registerXPathNamespace('n', 'http://www.example.com/ns/offer/1.0');
现在这有效:
$x_s_products = $xml->xpath("//n:SHOPITEM");
$cnt_x_products = count($x_s_products);
echo $cnt_x_products;
输出2。