2011-11-21 217 views
5

所以我有这样的XML文档与查询字符串的URL:包括XML文档

<?xml version="1.0" encoding="UTF-8"?> 
<Root> 
    <Item> 
     <URL>http://www.mysite.com/page?id=1</URL> 
    </Item> 
</Root> 

当我尝试和查看文档,我得到一个错误说:

XML Parsing Error: not well-formed

=登录查询字符串。我尝试将=标志更改为%3D,但我在%

上得到相同的错误我应该在这里做什么?

+0

无论XML解析的声明是不是很好形成,它已经破裂ñ,因为它形成良好。尝试任何在线验证,他们都会说同样的事情“井然有序,没有错误” – Mecki

回答

12

您可以尝试<URL><![CDATA[http://www.mysite.com/page?id=1]]></URL>

在XML文档中的所有文本都会被解析器解析。 但是,CDATA节中的文本将被解析器忽略。你可以找到更多here

+0

嗨,它为我工作,谢谢你的兄弟。 –

1

试试这个<URL><![CDATA[http://www.mysite.com/page?id=1]]></URL>

14

正如您所提供的,XML格式良好。 你没有任何东西可以逃避。也许你在源文件中有编码问题。 有关信息,必须在XML逃过2个字符是:

& in &amp; 
< in &lt; 

字符,你可以逃避属性的值(根据语法,您使用的属性:attr='value'attr="value"):

" in &quot; 
' in &apos; 

根据具体情况,最后一个可以转义的字符:

> in &gt; 
+1

这是正确的方法。应该避免CDATA。 –

+0

为什么要避免CDATA? – Adam

+0

@Adam:CDATA部分在CDATA嵌套到CDATA等几种用例中都有缺陷(请参阅[这里](https://en.wikipedia.org/wiki/CDATA#Nesting))。这意味着如果你想在CDATA部分插入任意的XML(我已经遇到过尝试过的人),实现并不简单。 –