【发布时间】:2009-09-06 05:42:30
【问题描述】:
我写了一个 SAX 解析器。当属性值嵌套在双引号中时,它可以正常工作。但如果我不使用引号,它会引发异常。我希望我的解析器解析其属性值不在引号内的 XML 文件。 我想解析以下类型的文件:
<root>
<tag1 attribute1=value1 > my data </tag1>
</root>
注意 value1 不在引号内
我可以让我的解析器解析上面的文件吗?如果是怎么办?
【问题讨论】:
我写了一个 SAX 解析器。当属性值嵌套在双引号中时,它可以正常工作。但如果我不使用引号,它会引发异常。我希望我的解析器解析其属性值不在引号内的 XML 文件。 我想解析以下类型的文件:
<root>
<tag1 attribute1=value1 > my data </tag1>
</root>
注意 value1 不在引号内
我可以让我的解析器解析上面的文件吗?如果是怎么办?
【问题讨论】:
SAX 解析器不会读取它,因为它不是 well-formed XML。所有属性值都需要用单引号或双引号括起来。
要让您的解析器读取它,您会发现必须使用相关库来整理/净化/修复它。
【讨论】:
试试 NekoHTML (http://nekohtml.sourceforge.net/usage.html)
例如
package sample;
import org.apache.xerces.parsers.AbstractSAXParser;
import org.cyberneko.html.HTMLConfiguration;
public class HTMLSAXParser extends AbstractSAXParser {
public HTMLSAXParser() {
super(new HTMLConfiguration());
}
}
【讨论】: