2010-08-11 165 views
1

我在XML文档中有这个。XML解析失败

<userdata name='filter'>&SearchExpression[0].Key=Id&SearchExpression[0].Value=1&</userdata> 

该值是一个将被添加到url的查询。

它一直未能解析。它说文件格式不正确。解析器在支架指着“[”

能否支架导致错误?

我如何使用括号来解析XML文件?

回答

4

你的XML改成这样:

<userdata name='filter'><![CDATA[&SearchExpression[0].Key=Id&SearchExpression[0].Value=1&]]></userdata> 

它的意思是一样的,但可以让你有在元素内部文本特殊字符。
你可以阅读更多关于CDATA here

3

我怀疑这是实际上由于与号。 &符号需要在XML中转义,如&amp;。你的XML应该是:

<userdata name='filter'>&amp;SearchExpression[0].Key=Id&amp;[...]</userdata> 

我的猜测是,它在[给了一个错误,因为它期待一个分号,认为SearchExpression是一个实体的名称(可以不包括[)。

此文档手工编辑,或创建一个程序?如果它是自动生成的(并且是您的代码),那么您应该开始使用XML API来创建XML,而不是手动编写字符串 - 它们将为您处理所有这些问题。

1

的问题来自于未完成的转义序列开始您需要或者包裹在<![CDATA[ ]]>元素内容,或逃避&从而&&amp;