XML中的嵌套双引号是否不正确?

时间:2014-03-18 01:02:38

标签: xml

我使用Python来解析XML文件,但它失败了,因为XML文件嵌套了双引号,例如,

<number="4" word="start" sentence="I said, "start!"" />

如果我将其更改为

<number="4" word="start" sentence="I said, 'start!'" />

然后Python XML解析可以使用它。

我想知道XML是否不允许嵌套双引号,还是仅仅是Python?谢谢!

4 个答案:

答案 0 :(得分:2)

它的XML阻止了你正在尝试做的事情。您可以对属性值使用单引号:

<number="4" word="start" sentence='I said, "start!"' />

标准中指出单引号和双引号都可用于分隔属性的部分是here

您可以使用&quot;代表双引号:

 <number="4" word="start" sentence="I said, &quot;start!&quot;" />

&quot;看起来很时髦,但绝对正确。正如standard所述:

  

要允许属性值包含单引号和双引号,撇号或单引号字符(&#39;)可以表示为&#34; &apos;&#34;和双 - 引用字符(&#34;)为&#34; &quot;&#34;。

答案 1 :(得分:1)

翻转你的报价订单:

<number="4" word="start" sentence='I said, "start!"' />

答案 2 :(得分:0)

是的,XML格式不正确。这几乎就是这样说:
<number="4" word="start" sentence="I said, " start!"" />

start!似乎属于某个属性但又错误地格式化了。双引号需要转义,如下所示:

<number="4" word="start" sentence="I said, &quot;start!&quot;" />

答案 3 :(得分:-2)

是的,因为第一个双引号会关闭你的陈述 &#34;我说,&#34;然后你的程序将START作为标记读取。如果你想使用双引号,你可以使用它。

sentence = "I said, \"start!\" "