simpleXML解析
我想解析一些XML在PHP中使用simpleXML
。simpleXML解析
虽然我遇到的问题是,有些节点有像Milk & Cheese
的值,我得到一个解析错误。
什么是最简单的方法来解析XML使用simpleXML与字符如&和/存在?
感谢
编辑:
我使用:
$source = 'stockdata.xml';
$stock = simplexml_load_file($source);
foreach($stock->StockItem as $item)
{
........
}
快速的解决方案:
$xml = str_replace('&','&',$xml); //$xml is the content in string format
一个更好的解决方案: [如果你控制XML]
添加CDATA在XML标签
<name><![CDATA[ Milk & honey]]></script>
,你会需要告诉SimpleXml照顾CDATA:
$sxml = simplexml_load_file('myfile.xml','SimpleXMLElement', LIBXML_NOCDATA);
希望这有助于
必须改变使用'file_get_contents'读取XML的方式。现在似乎都好了。 – terrid25
您需要使用XML (and HTML) entities。而不是Milk & Cheese
使用Milk & Cheese
。你可以在W3Schools找到完整的列表。
这个php函数做到这一点是htmentites()。所以你可以这样做:$ str = htmlentities($ str,ENT_QUOTES,$ encoding); ENT_QUOTES指出它应该如何处理引号,并且$编码是可选的,但是如果你知道包括它是很好的。 – perilandmishap
-1是有点粗糙这里,连最后的编辑之前。 +1,除非我另有说明 – Dlongnecker