用PHP-xml解析器处理符号

用PHP-xml解析器处理符号,php,xml,xml-parsing,Php,Xml,Xml Parsing,我正在用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|

我正在用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|
即,对于这个定理,假设X但是,对于这个定理,我有一个“是”,假设X | |我相信你是在问字符串中的特殊字符?
如果是这样,您需要使用ascii等效值,即

    For this theorem assume X < Y and Z & A = 0
    Becomes
    For this theorem assume X &lt; Y and Z &amp; A &#61; 0
对于这个定理,假设X
没错,这就是问题所在。我不认为我解释得很好,当php的xml解析器点击“&”符号时,它认为它位于与前一个不同的数据节点中,我不确定应该更改什么以便它能够识别&[a-z]+/[0-9]+;regex不是新的数据节点。您在XML文档中指定了什么编码?是否可以将其保存为双字节?尝试将UTF-16指定为编码类型。xmlparser会抛出一个错误,我认为它只接受UTF-8、ISO-8859-1和US-ASCII编码。我已经将所有的符号重新标记为单词AMP作为临时修复,这样我就可以继续测试我的代码,但我很想听到正确的解决方案。