尝试使用PHP API中的simplexml_load_string()
和new SimpleXMLElement()
解析XML数据,但我在解析CDATA
内容时遇到问题。在PHP中使用上述函数或实例也应该将CDATA
解析为节点的内容(通过从string
或SimpleXMLElement
标记将其LIBXML_NOCDATA
强制转换为<![CData[2801086]]>
), 但这种情况并非如此。相反,数据会像Cdata
一样出现(需要一段时间才会注意到,因为<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>
隐藏了渲染时,浏览器中的回显是不可见的)
这是一个包含API Feed中作业位置的片段(已经删除并删除了一些内容):
simplexml_load_string()
答案 0 :(得分:0)
这耗费了很多时间,以为我会发布它以拯救别人的痛苦。 PHP中的new SimpleXMLElement()
和Cdata
都需要CDATA
大写(即Cdata
),而网络浏览器(Chrome)在没有它的情况下很高兴。请注意,可能会随着不同的版本而改变,我在撰写本文时使用的是PHP 7。一旦大写,它就会出现没有预期的RGeo::GeoJSON.encode(<your_spatial_variable>, json_parser: :json)
包装。