PHP - 使用simpleXML引用XML属性

时间:2014-03-20 00:01:34

标签: php xml simplexml

使用simplexml_load_file方法,我试图检索并显示所有名称元素的文本(来自下面的XML文件),这些文本具有名为" type'的属性。平板电脑的价值。'此foreach循环仅显示第一个元素的值。有什么建议?谢谢!

$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>";
  }
}

这是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>

2 个答案:

答案 0 :(得分:1)

正如Scuzzy在评论中提到的那样,使用SimpleXMLElement::xpath简化了解决方案:

foreach ($XMLproducts->xpath('/products/product[@type="Tablet"]/name') as $name) {
    echo $name , "<br>";
}

答案 1 :(得分:0)

试试这个

 $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>";
      }
   }
 }