【问题标题】:Parse XML with PHP; hard to find a tag用 PHP 解析 XML;很难找到标签
【发布时间】:2015-03-12 13:54:26
【问题描述】:

我有以下 XML:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg lang="en">Command completed successfully</msg>
    </result>
    <msgQ count="1" id="1139047">
      <qDate>2007-09-26T00:00:00+02:00</qDate>
      <msg lang="en">Domain transfercode</msg>
    </msgQ>
    <trID>
      <clTRID>c2265c8bcd2f46dfeb34822fdeafab2a</clTRID>
      <svTRID>20150312.53840968.486516024</svTRID>
    </trID>
  </response>
</epp>

我正在寻找在 msgQ 中获取 ID 属性:1139047

这是我的 PHP 代码:

$msgQueue = simplexml_load_string($xmlCode); 
$ack = $msgQueue -> response -> msgQ -> attributes() -> id;

但是不起作用;一定很明显,但我在这里拉扯我的头发;我错过了什么?

谢谢

编辑:$msgQueue 转储:

    object(SimpleXMLElement)#5 (1) {
  ["response"]=&gt;
  object(SimpleXMLElement)#4 (4) {
    ["result"]=&gt;
    object(SimpleXMLElement)#3 (2) {
      ["@attributes"]=&gt;
      array(1) {
        ["code"]=&gt;
        string(4) "1301"
      }
      ["msg"]=&gt;
      string(46) "Command completed successfully; ack to dequeue"
    }
    ["msgQ"]=&gt;
    object(SimpleXMLElement)#6 (3) {
      ["@attributes"]=&gt;
      array(2) {
        ["count"]=&gt;
        string(1) "1"
        ["id"]=&gt;
        string(7) "1139047"
      }
      ["qDate"]=&gt;
      string(25) "2007-09-26T00:00:00+02:00"
      ["msg"]=&gt;
      string(19) "Domain transfercode"
    }
    ["resData"]=&gt;
    object(SimpleXMLElement)#7 (0) {
    }
    ["trID"]=&gt;
    object(SimpleXMLElement)#8 (2) {
      ["clTRID"]=&gt;
      string(32) "4cde4d0853c39c590b0ab65915101130"
      ["svTRID"]=&gt;
      string(27) "20150312.53840982.486516205"
    }
  }
}

【问题讨论】:

  • resData 是从哪里来的?
  • 请告诉我们 $msgQueue 的值
  • @JohnConde 抱歉打错了;这么多行打开...
  • 它对我有用! 但不起作用;这意味着您有任何错误吗?在文件顶部添加错误报告并告诉我们:&lt;?php ini_set("display_errors", 1); error_reporting(E_ALL); ?&gt; 如果您有任何问题
  • 问题中的来源有效:eval.in/299375

标签: php xml


【解决方案1】:

请尝试

$ack = $msgQueue -> response -> msgQ -> attributes() -> id;

【讨论】:

  • 他在 4 分钟前已经说过这是一个错字:stackoverflow.com/questions/29011721/…
  • 为什么这个答案仍然显示为 OP 真正 拥有并且是错字?它不再适用于作为解决方案。
  • OP:“这是我的 PHP 代码:$msgQueue = simplexml_load_string($xmlCode); $ack = $msgQueue -&gt; response -&gt; msgQ -&gt; attributes() -&gt; id;
  • @Disco 你不应该认为是他们推卸责任。仅供参考:这是我的反对意见。您打错了字并且没有将您的问题标记为 编辑:我打错字...,但您选择将其放在 cmets 中。另外,您没有告诉在这里给您答案的人他们应该提供解决方案并编辑他们的答案。就目前而言,您的问题尚不清楚,其他人甚至提供了对他们有用的 cmets。因此,您需要与这里回答的人一起讨论,以帮助提供“解决方案”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多