最近做项目用到了nekohtml+xpath
nekohtml将HTML文档解析为标准的DOM,再用XPath从DOM中抽取想要的结点。
nekohtml比起htmlparser还真是简单,但是简单就意味着不透明,出了错就不知是什么引起的,这一点真让人受不了。
下面先说说nekohtml+xpath的使用注意事项:
1.nekohtml会自动将html的标签转化为大写,因此写XPath时要用大写
//div 错误
//DIV 正确
2.用XPath处理时标签前要加命名空间,否则找不到结点,这里就要用到NamespaceContext这个类
class MyNamespaceContext implements NamespaceContext {
private String ns;
public MyNamespaceContext(String ns) {
this.ns = ns;
}
public String getNamespaceURI(String prefix) {
// TODO Auto-generated method stub
if (prefix == null) {
throw new NullPointerException("Null prefix");
} else if (prefix.equals("pre")) {
return this.ns;
} else if (prefix.equals("xml")) {
return XMLConstants.XML_NS_URI;
}
return XMLConstants.XML_NS_URI;
}
@Override
public String getPrefix(String namespaceURI) {
// TODO Auto-generated method stub
return null;
}
@Override
public Iterator getPrefixes(String namespaceURI) {
// TODO Auto-generated method stub
return null;
}
}
实例化XPath,并设置命名空间
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
xpath.setNamespaceContext(new MyNamespaceContext("http://www.w3.org/1999/xhtml"));
XPathExpression expr = xpath.compile("//pre:TITLE");
最后推介一个firefox的XPath插件--XPath checker
附近上源文件
分享到:
相关推荐
【nekohtml+dom4j】是一个用于处理和解析HTML及XML文档的组合工具,它在IT领域中常被用作强大的网络数据抓取和分析工具。在这个组合中,nekohtml扮演着核心角色,而dom4j则提供了强大的DOM(Document Object Model)...
在深入探讨NekoHtml解析内容的注意事项之前,首先需要理解NekoHtml是什么。NekoHtml是一款开源的HTML解析器,它由Apache Software Foundation旗下的Xerces项目开发,主要用于处理不规范的HTML文档。NekoHtml的设计...
**nekohtml-1.9.14源码及jar包**是针对XML和HTML解析的一个开源库,广泛应用于Java开发环境中。这个压缩包包含了nekohtml的核心组件,包括了jar包和源码两个部分,方便开发者进行学习、调试以及自定义扩展。 **...
在深入探讨NekoHtml之前,我们需要理解什么是DOM。DOM是一种W3C标准,它提供了一种结构化的表示XML或HTML文档的方式,允许程序和脚本动态更新、添加、删除和改变元素和属性。通过构建DOM树,NekoHtml使得开发者能够...
`DomUtils.java`文件可能是NekoHTML库中用于提供DOM操作的工具类。这个类可能包含了一系列静态方法,用于简化DOM节点的创建、查找、修改等任务。例如,它可能有方法用于获取特定标签的子节点、合并相邻的文本节点、...
NekoHTML 学习笔记 NekoHTML 是一个简单的 HTML 扫描器和标签补偿器,使得程序能解析 HTML 文档并用标准的 XML 接口来访问其中的信息。这个解析器能投扫描 HTML 文件并“修正”许多作者(人或机器)在编写 HTML ...
这个"nekohtml-1.9.13.zip"压缩包包含的是NekoHTML的1.9.13版本,这是一个稳定且广泛使用的版本。 NekoHTML的核心是两个关键类:`org.cyberneko.html.parsers.DOMParser`和`net.sourceforge.nekodoc.NekoDoc`。`DOM...
本篇文章将深入探讨NekoHTML的工作原理以及如何在Java中使用它。 NekoHTML是由Apache Software Foundation的Xerces项目开发的一个小型库,它提供了两个主要类:`org.htmlparser.Parser`和`org.htmlparser....
NekoHTML是一个简单地HTML扫描器和标签补偿...NekoHTML能增补缺失的父元素、自动用结束标签关闭相应的元素,以及不匹配的内嵌元素标签。NekoHTML的开发使用了Xerces Native Interface (XNI),后者是Xerces2的实现基础。
**注意事项** 1. 虽然NekoHTML可以处理不规范的HTML,但它并不完美。对于极度复杂的或者不规则的HTML,可能需要更强大的库如JSoup。 2. 性能方面,NekoHTML适用于小规模的HTML处理,对于大规模的网页抓取或处理,...
NekoHTML is written using the Xerces Native Interface (XNI) that is the foundation of the Xerces2 implementation. This enables you to use the NekoHTML parser with existing XNI tools without ...
NekoHTML技术预研说明,如何进行HTML页面解析,网页信息抽取
在提供的压缩包中,`Nekohtml_0.9.5(Java)`可能包含NekoHTML的源代码,这对于开发者深入理解其工作原理和进行定制化开发非常有用。而`www.pudn.com.txt`可能是包含下载链接或介绍信息的文本文件,可以帮助用户了解更...
在使用NeKoHTML时,开发者需要将`nekohtml-1.9.21.jar`添加到项目的类路径中,以便能正确导入和使用NeKoHTML的类。同时,由于NeKoHTML依赖于`xercesImpl.jar`和`xml-apis.jar`,所以这两个库也需要一并包含在类路径...
NekoHTML是一个Java语言的 HTML扫描器和标签补全器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能够扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档 过程中常...
这个帮助类可能指的是`nekohtml`库中的一些辅助类或方法,用于支持解析过程。 `NodeHelper.java` 和 `NekoHelper.java` 是可能包含在`nekohtml`库中的关键类。`NodeHelper`类很可能包含了一系列方法,用于操作和...
使用NekoHTML时,你可以创建一个`HTMLParser`实例,然后调用其`parse()`方法来解析HTML字符串或文件,得到一个`Document`对象。之后,你可以通过DOM API遍历和修改这个`Document`,或者使用XPath表达式来查找和提取...
其次,如果遇到特定的解析问题或者需要扩展nekoHtml的功能,可以直接修改源码来满足需求。最后,源码可以帮助开发者快速定位并修复可能遇到的bug,提高应用的稳定性。 在使用nekoHtml时,开发者可以通过Java API...
"nekohtml-1.9.7.zip" 是一个压缩包文件,其中包含了一个名为 "nekohtml-1.9.7" 的程序库。这个库主要用于处理HTML文档,为开发者提供了解析和构建HTML文档的功能。在IT行业中,处理HTML文档是网页开发、数据抓取、...