我在XML文档中有这个。
<userdata name='filter'>&SearchExpression[0].Key=Id&SearchExpression[0].Value=1&</userdata>
该值是一个将添加到网址的查询。
一直无法解析。它说文件格式不好。解析器指向括号“[”
括号会导致错误吗?
如何使用括号解析XML文件?
答案 0 :(得分:4)
将您的xml更改为:
<userdata name='filter'><![CDATA[&SearchExpression[0].Key=Id&SearchExpression[0].Value=1&]]></userdata>
它的含义相同,但允许您在元素内部文本中使用特殊字符 您可以阅读有关CDATA here的更多信息。
答案 1 :(得分:3)
由于&符号,我怀疑它实际上是 。 &符号需要以XML格式转义,如&
。你的XML应该是:
<userdata name='filter'>&SearchExpression[0].Key=Id&[...]</userdata>
我的猜测是它在[
给出了一个错误,因为它期待一个分号,认为SearchExpression
是一个实体名称(不能包含[
)。
此文档是手工编辑的,还是由程序创建的?如果它是自动生成的(并且它是您的代码),那么您应该开始使用XML API来创建XML,而不是手动写出字符串 - 它们会为您处理所有这些。
答案 2 :(得分:1)
问题来自以&
开头的未完成转义序列,您需要将元素内容包装在<![CDATA[ ]]>
中,或者转义&
因此:&