【问题标题】:Parsing stdclass object broken XML解析 stdclass 对象损坏的 XML
【发布时间】:2019-12-17 13:43:56
【问题描述】:

使用第三方 API,我试图解析我得到的输出。我正在返回一个包含一些 XML 但格式不正确的 XML 的 StdClass 对象,如下所示:

stdClass Object
(
    [any] => <data xmlns="" count="2" count_available="3366"><row id="1"><description1>testing 1</description1></row><row id="2"><description1>testing 2</description1></row></data>
)

什么是解析这个最好和最简单的方法,以便我可以检索诸如“description1”之类的字段?

【问题讨论】:

  • 您是否尝试过使用$xml = simplexml_load_string($object-&gt;any); echo $xml-&gt;asXML(); 之类的方式从该对象加载它来检查它?
  • 感谢您的回复。是的,这确实返回了 XML 中的两个描述,但是它们之间没有分隔,将这些作为单独的项目返回的最佳方法是什么?
  • 你可能只需要按照老式的方式...

标签: php stdclass


【解决方案1】:

您需要从对象中提取内容,然后您可以使用 SimpleXML 来访问这些值。 SimpleXML 使用对象表示法来访问 XML 元素,因此循环遍历文档中的 &lt;row&gt; 元素,并为每个元素输出 &lt;description1&gt; 元素(转换为字符串,否则您最终会得到一个 SimpleXMLElement 对象)...

$xml = simplexml_load_string($object->any);
foreach ($xml->row as $row){
    echo (string)$row->description1.PHP_EOL;
}

【讨论】:

  • 非常感谢,我知道解决方案会很简单,但是在尝试使用 simple_xml_load_string 并从中提取属性时我感到非常困惑。这很好用:)
猜你喜欢
  • 2011-01-22
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 2013-04-29
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
相关资源
最近更新 更多