额外引用时XML解析器中的问题

时间:2011-07-13 06:54:15

标签: java xml-parsing

我编写了一个xml解析器,它成功解析了一个作为输入给出的xml文件。但是有时候,可能解析器的输入文件在text属性中有双引号,因为我的解析器崩溃了。

例如

<tag  myprop=" this has a extra quote here like " some times" >  </tag>

我知道可能/可能没有额外引用的标记。我使用dom解析器。


我该如何处理这种情况?

4 个答案:

答案 0 :(得分:1)

我不确定,但我认为它只是无效的XML,所以你的解析器应该优雅地失败(而不是崩溃),但我认为它不应该成功解析这样的文件。

答案 1 :(得分:1)

在拥有实际的XML之前,您将无法使用XML解析器。您目前拥有的是无效的(即不是XML)。您应该事先在属性中转义引号。

转义代码如下所示:

<tag  myprop=" this has a extra quote here like &quot; some times" >  </tag>

至于你的解析器崩溃的原因,那里有dozens of XML libraries - 你看过这些吗?我个人希望收到ParseException或类似的东西。

答案 2 :(得分:0)

你做不到。这不是有效的XML,因此DOM解析器将无法解析。

答案 3 :(得分:0)

参见XML 1.0规范,第2.4节:
http://www.w3.org/TR/xml/#attdecls

  

要允许属性值包含单引号和双引号,   撇号或单引号字符(')可以表示为“   &amp; “和双引号字符(”)为“&amp; quot;”。“

所以,因为它不是有效的XML,你的解析器不应该试图处理无效值,它只需要给出一个错误。