Php 回显数组的XML元素值和属性值
考虑以下XML文档:Php 回显数组的XML元素值和属性值,php,xml,xpath,Php,Xml,Xpath,考虑以下XML文档: <?xml version="1.0" encoding="UTF-8"?> <catalog> <product code="WERGTR"> </product> <product code="HERGGFH"> </product> <product code="NYTERBT"> </product> <pro
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<product code="WERGTR">
</product>
<product code="HERGGFH">
</product>
<product code="NYTERBT">
</product>
<product code="NUYRTHT">
</product>
<misc>
<copyrightHTML>Somo stuff</copyrightHTML>
<categoryLink name="Attr1">http://www.example.com/val1</categoryLink>
<categoryLink name="Attr2">http://www.example.com/val2</categoryLink>
<categoryLink name="Attr3">http://www.example.com/val3</categoryLink>
<categoryLink name="Attr4">http://www.example.com/val4</categoryLink>
</misc>
</catalog>
但它不起作用,它根本没有显示任何东西
我正在寻找的结果可能如下:
$key . ": value: " . $value . ", name: " . $nameValue
所以
我想到了如何:
1.-获取每个
元素的name
属性值:
foreach($xml->xpath('//misc/categoryLink/@name') as $nameAttr) {
echo $nameAttr . "<br>";
}
foreach($xml->xpath('//misc/categoryLink') as $linkVal) {
echo $linkVal . "<br>";
}
foreach($xml->xpath('//misc/categoryLink/@name')作为$nameAttr){
echo$nameAttr.“
”;
}
2.-获取每个
元素的值:
foreach($xml->xpath('//misc/categoryLink/@name') as $nameAttr) {
echo $nameAttr . "<br>";
}
foreach($xml->xpath('//misc/categoryLink') as $linkVal) {
echo $linkVal . "<br>";
}
foreach($xml->xpath('//misc/categoryLink')作为$linkVal){
echo$linkVal.“
”;
}
缺点是我还没有弄清楚如何在每行中同时输出这两个值。实际上,输出是:
<br><br><br><br>Attr1<br>
或者使用Xpath:
foreach($xml->xpath('misc/categoryLink') as $link) {
echo $link['name'], ', ', $link;
echo "\n";
}
SimpleXMLElement对象的行为因其使用方式而异,您可以使用相同的名称在多个节点上迭代,访问列表的第一个节点,或将其转换为字符串以获取文本内容。谢谢你,伙计。我的代码/答案有一些问题,决定试试你的。工作得很好。
foreach($xml->xpath('misc/categoryLink') as $link) {
echo $link['name'], ', ', $link;
echo "\n";
}