XML解析失败
问题描述:
我在XML文档中有这个。XML解析失败
<userdata name='filter'>&SearchExpression[0].Key=Id&SearchExpression[0].Value=1&</userdata>
该值是一个将被添加到url的查询。
它一直未能解析。它说文件格式不正确。解析器在支架指着“[”
能否支架导致错误?
我如何使用括号来解析XML文件?
答
你的XML改成这样:
<userdata name='filter'><![CDATA[&SearchExpression[0].Key=Id&SearchExpression[0].Value=1&]]></userdata>
它的意思是一样的,但可以让你有在元素内部文本特殊字符。
你可以阅读更多关于CDATA here。
答
我怀疑这是实际上由于与号。 &符号需要在XML中转义,如&
。你的XML应该是:
<userdata name='filter'>&SearchExpression[0].Key=Id&[...]</userdata>
我的猜测是,它在[
给了一个错误,因为它期待一个分号,认为SearchExpression
是一个实体的名称(可以不包括[
)。
此文档手工编辑,或创建一个程序?如果它是自动生成的(并且是您的代码),那么您应该开始使用XML API来创建XML,而不是手动编写字符串 - 它们将为您处理所有这些问题。
答
的问题来自于未完成的转义序列开始您需要或者包裹在<![CDATA[ ]]>
元素内容,或逃避&
从而&
:&