【问题标题】:accessing xml property using php [duplicate]使用php访问xml属性[重复]
【发布时间】:2013-06-03 16:58:52
【问题描述】:

在下面的 xml 响应中

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">1</int>
  </lst>
  <lst name="initArgs">
    <lst name="defaults">
      <str name="config">../conf/dataconfig.xml</str>
    </lst>
  </lst>
  <str name="status">busy</str>
  <str name="importResponse">A command is still running...</str>
  <lst name="statusMessages">
    <str name="Time Elapsed">0:0:7.942</str>
    <str name="Total Requests made to DataSource">1</str>
    <str name="Total Rows Fetched">8831</str>
    <str name="Total Documents Processed">8830</str>
    <str name="Total Documents Skipped">0</str>
    <str name="Full Dump Started">2013-06-03 22:15:11</str>
  </lst>
  <str name="WARNING">
    This response format is experimental. It is likely to change in the future.
  </str>
</response>

我需要访问两个值:

<str name="status">busy</str>  --  busy
<str name="Total Rows Fetched">8831</str>  --  8831

使用下面的代码:

$xml = simplexml_load_string($string); 
echo $xml->str[0];

我可以访问值“busy”,但我不知道如何访问“8831”

【问题讨论】:

    标签: php simplexml


    【解决方案1】:

    使用 Xpath:

    $xml = simplexml_load_string($x); // assuming XML in $x
    echo $xml->xpath("//str[@name='status']")[0];
    

    并对其他值执行相同操作。

    【讨论】:

    • 需要使用 simplexml_load_string 的解决方案?
    • 是的,它是 simplexml,看我的编辑。
    • 很棒的解决方案.... 离开
    【解决方案2】:

    使用 var_dump($xml); 来理解 xml 对象。阅读示例 #1 解释 XML 字符串示例 http://php.net/manual/en/simplexmlelement.attributes.php 会是这样的,

    foreach($xml->foo[0]->attributes() as $a => $b) { 
          if($a=="Total Rows Fetched"){
             echo $b;    
          }    
      }
    

    【讨论】:

    • 它给出的命令仍在运行...[
    • 做不到:-(请帮忙
    猜你喜欢
    • 2012-04-13
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多