我正在使用SimpleXMLElement和xpath尝试从最底部的xml读取<subcategory><name>
。这段代码可以工作..但是while
循环中的内容看起来有些混乱,现在我也想获取<subcategory><count>
并以某种方式将其与相应的<subcategory><name>
配对。
$names = $xml->xpath('/theroot/category/subcategories/subcategory/name/');
while(list( , $node) = each($names)) {
echo $node;
}
我的问题:仍然可以使用xpath进行配对,因为看起来它可以使工作更轻松?
<theroot>
<category>
<name>Category 1</name>
<subcategories>
<subcategory>
<name>Subcategory 1.1</name>
<count>18</count>
</subcategory>
<subcategory>
<name>Subcategory 1.2</name>
<count>29</count>
</subcategory>
</subcategories>
</category>
<category>
<name>Category 2</name>
<subcategories>
<subcategory>
<name>Subcategory 2.1</name>
<count>18</count>
</subcategory>
<subcategory>
<name>Subcategory 2.2</name>
<count>29</count>
</subcategory>
</subcategories>
</category>
</theroot>
最佳答案
如果您使用的是SimpleXML,并且知道确切的布局,则这样做可能会更容易:
$subcategories = $xml->xpath('/theroot/category/subcategories/subcategory');
foreach($subcategories as $subcategory){
echo $subcategory->name.'='.$subcategory->count;
}
使用XPath,您当然可以选择
subcategory
的所有子节点,但是将它们配对备份可能比仅在最后一个节点使用xpath麻烦。
关于php - 读取xml:xpath可以读取2个字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3338378/