java - 使用 JDom2 解析 HTML 时引号导致 IllegalNameException

标签 java xml parsing jdom

大家晚上好!

我正在尝试使用 JDOM2 解析 Java 中的 HTML 页面,以从中访问一些信息。

我的代码如下所示:(刚刚添加了此代码块的包,我的真实源代码中没有它们)

//Here goes the reading of the site into my String "string" (using NekoHTML)

org.xml.sax.InputSource is = new InputSource();
is.setCharacterStream(new StringReader(string));

org.cyberneko.html.parsers.DOMParser parser = new DOMParser();
parser.parse(is);

org.jdom2.input.DOMBuilder builder = new DOMBuilder();
org.jdom2.Document doc = builder.build(parser.getDocument());

除了某些特殊情况之外,这对所有情况都适用:当网站的元素中包含引号时。这是我的意思的一个例子:

<a href="LINK" title="Der "realismo mágico" und die Phantastische Literatur">Der "realismo mágico" und die Phantastische...</a>

因此,在那个美妙的标签之后,我得到以下错误跟踪:

SEVERE: org.jdom2.IllegalNameException: The name "literatur"" is not legal for JDOM/XML attributes: XML name 'literatur"' cannot contain the character """.

所以,现在我的问题是:我有什么选择来处理这个错误? NekoHTML 中是否有我可以使用的功能(使用“setFeature()”),或者 JDOM 中我可以使用什么功能?

如果没有:是否有其他适合抓取网站的库,可以在标签中使用引号之类的东西?

感谢您的宝贵时间!

最佳答案

好的,所以我解决了如下问题:

由于对 NekoHTML 没有任何依赖,我切换到 jTidy作为在这种情况下完成工作的解析器。

问题得到解答。

关于java - 使用 JDom2 解析 HTML 时引号导致 IllegalNameException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24679017/

相关文章:

java - 如何从字符串<a>标签中提取url和标签?

javascript - 在 javascript 变量中存储 HTML 或 XML 代码

xml - XML XPath 1.0-如何在XPath表达式中正确使用'not'函数

php - PHP解析/语法错误;以及如何解决它们

Android 日期到字符串转换问题

ios - 如何获取 XML 元素并存储它? objective-c

java - 如何从 JTextField 获取 "getActionCommand"?我在调试时看到它但是

java | Web 服务 WSDL 验证错误

c# - 获取格式错误的 SOAP 响应

java - 编辑文本。红色光标和下划线