【问题标题】:Get XML element attribute with simplexml使用 simplexml 获取 XML 元素属性
【发布时间】:2014-03-06 12:42:37
【问题描述】:

我有一个xml文件如下:

<?xml version="1.0" ?>
<shop version="2.0" shop-name="XYZ">
 <category name="FOO1">
  <subcategory name="Foobar1">
     <product name="Productname1" id="1">
        <supplier name="XXX" logo="XXX.gif" />
        <desc>DESC</desc>
     </product>
     <product name="Productname2" id="2">
       ...
     </product>
  </subcategory>
 </category>
</shop>

我想获取 shop 元素的属性值 - 正是 shop-name

我在 php 中使用了 simplexml:

<?php
    $dataXML=simplexml_load_file("data.xml");
    $a=$dataXML->shop[0]["shop-name"];
    echo $a;
?>

结果我一无所获。知道有什么问题吗?

【问题讨论】:

    标签: php xml simplexml


    【解决方案1】:

    使用 getAttribute() 方法读取属性名称。

    <?php
        $dataXML = simplexml_load_file("data.xml");
        $shopName = $dataXML->getAttribute("shop-name");
        echo $shopName;
    ?>
    

    【讨论】:

      【解决方案2】:

      这些是属性,所以你需要使用attributes()方法正确访问它们:

      $data = simplexml_load_file( 'data.xml' );
      $attributes = $data->attributes();
      echo $attributes['shop-name'];
      

      或者你可以直接访问它,因为它是main attribute

      $data = simplexml_load_file( 'data.xml' );
      echo $data['shop-name'];
      

      【讨论】:

        猜你喜欢
        • 2012-10-03
        • 2012-04-13
        • 2013-04-12
        • 1970-01-01
        • 1970-01-01
        • 2013-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多