我正在使用PHP的xml解析器将xml写入文本文件脚本。我用@符号和数据用|分隔属性符号,我注意到当我打开文本文件时,符号被视为自己的数据。
i.e. <equation valid="yes">For this theorem assume X < Y and Z & A = 0</equation>
should have output @yes@ |For this theorem assume X < Y and Z & A = 0|
but instead I have @yes@ |For this theorem assume X| |<| |Y| and Z | |&| | A = 0|
所以我认为正在发生的是任何依赖于&amp; [a-z] +的符号;或&amp; [0-9] +;被视为两个标签之间的不同数据。我尝试preg_replace("/&([a-z]+);/","\1",$data)
和数字相同,只有字母/数字在那里让我以后格式化,但似乎没有做任何事情。如何让xml解析器将这些符号识别为数据的一部分?
Edit1:我刚刚尝试更换所有&amp;用\和但是这也没有做任何事情,我只是在我的数据分隔符之前得到反斜杠。
答案 0 :(得分:0)
我相信你在询问字符串中的特殊字符? 如果是这样,你需要使用ascii等效,即
For this theorem assume X < Y and Z & A = 0
Becomes
For this theorem assume X < Y and Z & A = 0