我必须编写一个脚本来将数据传输到Web服务器,服务器以XML格式接收数据并以XML格式发回响应。在一个特殊情况下,它会将XML发回给我:
<operation name="ADD_REQUEST">
<result>
<status>Failed</status>
<message>Error when performing - ADD_REQUEST - The element type "Details" must be terminated by the matching end-tag "</Details>".</message>
</result>
</operation>
由于以下原因,我正在使用MSXML.DOMDocument来解析它:
"</Details>"
嵌入在邮件中。如果我手动将其编辑为
"</Details>"
XML解析得很好。
我的问题是MS解析器是否过于挑剔或者服务器是否发回了无效的,即不正确编码的XML?如果是后者,我会嘲笑那些维护服务器的人(这不是我对自己有任何控制权的东西)。
答案 0 :(得分:2)
这不是返回的有效XML。 spec清楚地说:
&符号(&amp;)和左尖括号(&lt;)不得 以字面形式出现,除非用作标记分隔符, 或在评论,处理指令或CDATA部分内。如果 它们在别处需要,必须使用数字进行转义 字符引用或字符串“
&
”和“<
” 分别。可以使用以下来表示右尖括号(&gt;) 字符串“>
”,为了兼容性,必须使用其中任何一个进行转义 “>
”或字符串参考出现在字符串“]]&gt;中 “在内容中,当该字符串未标记CDATA的结尾时 部分。