xml解析特殊字符,例如'&'在php中的符号

时间:2011-05-18 03:29:48

标签: php xml-parsing

我无法使用特殊字符解析xml文件中的特殊字符(我无法编辑文件),例如'&' php中的符号。

这是一个示例xml代码片段,我尝试使其工作并在php中显示。

<?xml version="1.0" encoding="ISO-8859-1"?> <node> <test>Don't & forget me this weekend!</test> </node>

非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:3)

要使用&特殊字符,代码为&amp;

另请参阅:http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

答案 1 :(得分:1)

在那个角落里:

str_replace("&", "&amp;", $xml);

会使其正确解析。不幸的是,如果你有一个大于或小于未转义的标志:

<?xml version="1.0" encoding="ISO-8859-1"?>
<node>
  <test>Oh my < Goodness </test>
</node>

str_replace无效。现在你可以用正则表达式来测试像<[a-zA-Z]这样的东西,但接下来是:

<?xml version="1.0" encoding="ISO-8859-1"?>
<node>
  <test>Oh my<Goodness </test>
</node>

因此,这将基本上扼杀你使用正则表达式的机会。

我尝试使用SimpleXML,DOM,XmlReader解析您的XML,并尝试了许多libxml属性,但没有任何效果。

简而言之,可能性很大。您的提供商需要生成适当的XML。