我使用simplexml_load_string()来解析XML API响应。
$lien = "http://myresponseurl";
$page = simplexml_load_string($this->get_data($lien));
Everythink工作得很好,除了在这种情况下:
<libdivision><1500 Poule H</libdivision>
要取回的文字应为“&lt; 1500 Poule H”但是,“&lt;” caractère也是XML中开头标记的象征......
如何在没有任何错误的情况下取回“&lt; 1500 Poule H”?
Warning: simplexml_load_string(): Entity: line 4: parser error : StartTag: invalid element name
Warning: simplexml_load_string(): <libdivision><1500 Poule G</libdivision>
Warning: simplexml_load_string(): ^
感谢您的帮助
答案 0 :(得分:1)
<libdivision><1500 Poule H</libdivision>
这是无效的XML。 API的提供者应该解决这个问题,这是API中的一个明显错误,客户端不负责处理格式错误的数据。有两种选择:
将其包裹在CDATA字段中:
<libdivision><![CDATA[<1500 Poule H]]></libdivision>
或编码符号:
<libdivision><1500 Poule H</libdivision>