我编写了一个xml解析器,它成功解析了一个作为输入给出的xml文件。但是有时候,可能解析器的输入文件在text属性中有双引号,因为我的解析器崩溃了。
例如
<tag myprop=" this has a extra quote here like " some times" > </tag>
我知道可能/可能没有额外引用的标记。我使用dom解析器。
我该如何处理这种情况?
答案 0 :(得分:1)
我不确定,但我认为它只是无效的XML,所以你的解析器应该优雅地失败(而不是崩溃),但我认为它不应该成功解析这样的文件。
答案 1 :(得分:1)
在拥有实际的XML之前,您将无法使用XML解析器。您目前拥有的是无效的(即不是XML)。您应该事先在属性中转义引号。
转义代码如下所示:
<tag myprop=" this has a extra quote here like " 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,你的解析器不应该试图处理无效值,它只需要给出一个错误。