【发布时间】:2017-05-04 11:00:12
【问题描述】:
已尝试通过 XML API 在 PHP 中同时使用 simplexml_load_string() 和 new SimpleXMLElement() 解析 XML 数据,但在解析 CDATA 内容时遇到问题。在 PHP 中使用上述函数或实例还应该将 CDATA 解析为节点的内容(通过将其类型转换为来自 SimpleXMLElement 的 string 或使用 LIBXML_NOCDATA 标志),但情况并非如此.相反,数据像<![CData[2801086]]> 一样出来(这需要一段时间才能注意到,因为在浏览器中回显它是不可见的,因为Cdata 将其隐藏在渲染中)
这是一个包含 API 提要中的工作职位的 sn-p(已精简并删除了一些内容):
<position>
<Id><![CData[2801086]]></Id>
<url>
<![CData[http://foo.bar.co.uk/ViewVacancy.aspx?2801086-foo]]>
</url>
<JobReference><![CData[VAC-00117]]></JobReference>
<JobTitle><![CData[Foo Bar]]></JobTitle>
<County><![CData[Nottinghamshire]]></County>
<Town><![CData[Nottingham]]></Town>
<Postcode><![CData[NG11 0EE]]></Postcode>
</position>
【问题讨论】:
-
CDATA 必须大写。您编写它的方式,它不是格式良好的 XML。
-
感谢迈克尔的反馈。是的,我知道(已在下面回答)。可惜不是我自己写的,所以需要让提供服务的开发者知道
标签: php xml xml-parsing