java - 在 Java 中使用 XPath 查询 HTML 页面

标签 java html jaxp xpath

谁能告诉我一个 Java 库,它允许我在 html 页面上执行 XPath 查询?

我尝试使用 JAXP,但它一直给我一个奇怪的错误,我似乎无法修复(线程“main”java.io.IOException:服务器返回 HTTP 响应代码:503 对于 URL:http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd )。

非常感谢。

编辑

我发现了这个:

// Create a new SAX Parser factory
SAXParserFactory factory = SAXParserFactory.newInstance();

// Turn on validation
factory.setValidating(true);

// Create a validating SAX parser instance
SAXParser parser = factory.newSAXParser();

// Create a new DOM Document Builder factory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

// Turn on validation
factory.setValidating(true);

// Create a validating DOM parser
DocumentBuilder builder = factory.newDocumentBuilder();

来自 http://www.ibm.com/developerworks/xml/library/x-jaxpval.html但将论点变成错误并没有改变任何事情。

最佳答案

将解析器设置为“非验证”只会关闭验证;它禁止获取DTD。获取 DTD 不仅是为了验证,还为了实体扩展......据我记得。

如果您想禁止获取 DTD,则需要向 DocumentBuilderFactoryDocumentBuilder 注册适当的 EntityResolver。实现 EntityResolverresolveEntity 方法以始终返回空字符串。

关于java - 在 Java 中使用 XPath 查询 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3352594/

相关文章:

javascript - javascript的背景图像问题

javascript - 如何使用 HTML5 <canvas> clip()

xml - 让 JAXB 运行得更快

java - 从特定位置的 xml 中删除节点

java - NetBeans 在非公共(public)类中运行带有 main 的 Java 程序

java - ComparatorChain 与将属性转换为字符串并进行比较

javascript - 在 HTML5 Canvas 上使用 drawImage 调整颜色

java - DocumentBuilderFactory 在 Java 5+ 中是线程安全的吗?

java - 包括带有 steam 应用程序的 JRE

java - JDK 11.0.2 - 无法在 ECLIPSE 中派生模块描述符