PHP-使用simpleXML引用XML属性
使用simplexml_load_file方法,我试图检索并显示所有名为“type”的属性值为“table”的name元素(来自下面的XML文件)的文本。此foreach循环仅显示第一个元素的值。有任何建议吗?谢谢PHP-使用simpleXML引用XML属性,php,xml,simplexml,Php,Xml,Simplexml,使用simplexml_load_file方法,我试图检索并显示所有名为“type”的属性值为“table”的name元素(来自下面的XML文件)的文本。此foreach循环仅显示第一个元素的值。有任何建议吗?谢谢 $XMLproducts = simplexml_load_file("products.xml"); foreach($XMLproducts->product->attributes() as $a => $b) { $i = 0; if ($b ==
$XMLproducts = simplexml_load_file("products.xml");
foreach($XMLproducts->product->attributes() as $a => $b) {
$i = 0;
if ($b == "Tablet") {
echo $XMLproducts->product[$i]->name;
echo "<br>";
}
}
$XMLproducts=simplexml_load_文件(“products.xml”);
foreach($XMLproducts->product->attributes()作为$a=>b){
$i=0;
如果($b==“平板电脑”){
echo$XMLproducts->product[$i]->name;
回声“
”;
}
}
以下是XML文件:
<products>
<product type="Desktop">
<name>Desktop 1</name>
</product>
<product type="Tablet">
<name>Ipad 1</name>
</product>
<product type="Desktop">
<name>Desktop 2</name>
</product>
<product type="Tablet">
<name>Ipad 2</name>
</product>
</products>
桌面1
iPad1
桌面2
iPad2
如SCUZY在评论中所述,使用简化了解决方案:
foreach ($XMLproducts->xpath('/products/product[@type="Tablet"]/name') as $name) {
echo $name , "<br>";
}
foreach($XMLproducts->xpath('/products/product[@type=“Tablet”]/name')作为$name){
echo$name,“
”;
}
试试这个
$XMLproducts = simplexml_load_file("products.xml");
foreach($XMLproducts->products->product as $product) {
foreach ($product->attributes() as $a => $b) {
$i = 0;
if ($b == "Tablet") {
echo $XMLproducts->product[$i]->name;
echo "<br>";
}
}
}
$XMLproducts=simplexml_load_文件(“products.xml”);
foreach($XMLproducts->products->products as$product){
foreach($product->attributes()作为$a=>$b){
$i=0;
如果($b==“平板电脑”){
echo$XMLproducts->product[$i]->name;
回声“
”;
}
}
}
您需要执行两个循环:foreach($XMLproducts->product as$product){foreach($product->attributes()as$a=>$b){if($b='Tablet')echo$product->name;}。
(或者使用1个Xpath:/product[@type=“Tablet”]/name
)。看看使用,这是天赐之物