<!---->
import
org.cyberneko.html.parsers.DOMFragmentParser;
import org.apache.html.dom.HTMLDocumentImpl;
import
org.w3c.dom.DocumentFragment;
import
org.w3c.dom.Node;
import
org.w3c.dom.NodeList;
import
org.xml.sax.InputSource;
import
org.xml.sax.SAXException;
/**
* 从html中抽取纯文本
*
*
@param
content
*
@return
*
@throws
UnsupportedEncodingException
*/
public
String extractTextFromHTML(String content)
throws
UnsupportedEncodingException {
DOMFragmentParser parser
=
new
DOMFragmentParser();
DocumentFragment node
=
new
HTMLDocumentImpl().createDocumentFragment();
InputStream is
=
new
ByteArrayInputStream(content.getBytes());
try
{
parser.parse(
new
InputSource(is), node);
}
catch
(IOException e) {
e.printStackTrace();
}
catch
(SAXException se) {
se.printStackTrace();
}
StringBuffer newContent
=
new
StringBuffer();
this
.getText(newContent, node);
String str
=
(
new
String(
newContent.toString().getBytes(
"
Windows-1252
"
),
"
GBK
"
));
return
str;
}
private
void
getText(StringBuffer sb, Node node) {
if
(node.getNodeType()
==
Node.TEXT_NODE) {
sb.append(node.getNodeValue());
}
NodeList children
=
node.getChildNodes();
if
(children
!=
null
) {
int
len
=
children.getLength();
for
(
int
i
=
0
; i
<
len; i
++
) {
getText(sb, children.item(i));
}
}
}
1,nekohtml1.9.6.1版本用到了jdk5的Arrays.hashCode等方法,为兼容jdk1.4,
故采用nekohtml1.9.6版本
2,需要xerces.jar支持
3,
http://hi.baidu.com/walkandsing/blog/item/f5743634c6ba2e3a5bb5f5e5.html
分享到:
相关推荐
### NekoHTML 使用笔记 #### 一、简介与配置 NekoHTML 是一款轻量级且高效的 HTML 解析器库,它可以将不规范的 HTML 文档解析为接近标准的 XML 结构,便于后续处理和分析。该库尤其适用于对性能有较高要求的应用...
1. **HTML解析**:NekoHTML使用了一个名为`org.htmlparser`的解析器,它能够解析不完整的HTML标签、缺失的闭合标签和不规范的属性。通过这种方式,它可以将非结构化的HTML文档转化为结构化的XML文档。 2. **DOM模型...
标题 "nekohtml+xpath 实例,及注意事项" 指涉的是使用 nekohtml 库结合 XPath 表达式进行 HTML 解析和查询的技术。NekoHTML 是一个开源的 Java 库,它允许开发者解析和构建不完整的或错误的 HTML 文档。XPath 则是...
通过分析这些文件,我们可以更直观地了解NekoHtml的使用方法和效果。例如,可能会有简单的Java代码片段展示如何创建NekoParser实例,加载HTML文件,然后遍历和操作生成的DOM树。测试用例则可能包含了各种格式的HTML...
3. **NekoHTML特性和用法**:了解NekoHTML如何处理不标准的HTML,以及如何配置和使用解析器。 4. **Java编程**:因为NekoHTML是用Java实现的,所以你需要具备基本的Java编程能力,以便编写和运行相关代码。 在阅读`...
NekoHTML是一个开源的Java库,主要用于解析HTML和XML文档,尤其在处理不规范或半结构化的HTML时...通过学习和使用NekoHTML,开发者可以提高解析效率,确保解析结果的准确性和一致性,同时增强系统的安全性和可扩展性。
使用 NekoHTML 需要下载 nekohtml-latest.zip,并将其添加到 CLASSPATH 中。然后,使用 JAXP 实例化解析器对象时,可以透明地创建 HTML 解析器。也可以使用 org.cyberneko.html.parsers 包的 DOM 和 SAX 解析器类来...
这个"nekohtml-1.9.13.zip"压缩包包含的是NekoHTML的1.9.13版本,这是一个稳定且广泛使用的版本。 NekoHTML的核心是两个关键类:`org.cyberneko.html.parsers.DOMParser`和`net.sourceforge.nekodoc.NekoDoc`。`DOM...
NekoHTML是一个简单地HTML扫描器和标签补偿器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。...NekoHTML的开发使用了Xerces Native Interface (XNI),后者是Xerces2的实现基础。
nekohtml.jar nekohtmlSamples.jar
本篇文章将深入探讨NekoHTML的工作原理以及如何在Java中使用它。 NekoHTML是由Apache Software Foundation的Xerces项目开发的一个小型库,它提供了两个主要类:`org.htmlparser.Parser`和`org.htmlparser....
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-1.9.14.jar`是nekohtml的二进制库,包含了所有编译好的类和资源,可以直接在Java项目中作为依赖使用。开发者只需将此jar包添加到项目的类路径中,就可以调用nekohtml提供的API来解析HTML或XHTML文档。例如...
NekoHTML技术预研说明,如何进行HTML页面解析,网页信息抽取
在使用NekoHtml解析HTML内容时,有几点需要注意: 1. **处理不规范的HTML**:NekoHtml的主要优势在于其对不规范HTML的容忍度。然而,这也会带来一个问题,即在解析过程中可能会产生意外的解析结果。因此,需要确保...
在使用`nekohtml`时,开发人员可以利用这些帮助类来实现以下功能: 1. **解析不规范的HTML**:由于`nekohtml`旨在处理非标准的HTML,它能容忍许多在正规XML中会被视为错误的语法,如未闭合的标签、缺失的属性等。 ...
在使用NeKoHTML时,开发者需要将`nekohtml-1.9.21.jar`添加到项目的类路径中,以便能正确导入和使用NeKoHTML的类。同时,由于NeKoHTML依赖于`xercesImpl.jar`和`xml-apis.jar`,所以这两个库也需要一并包含在类路径...
通过使用NekoHTML,开发者可以将HTML文档转换成标准的XML文档,从而方便进行后续的处理和操作。 在描述中提到"很好用",这可能是因为NekoHTML提供了以下优势: 1. **容错性**:NekoHTML能够处理不规范的HTML代码,...
NekoHTML是一个Java语言的 HTML扫描器和标签补全器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能够扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档 过程中常...
在使用nekoHtml时,开发者可以通过Java API调用解析器,将HTML字符串或输入流转化为DOM对象。例如,可以创建一个`org.htmlparser.Parser`实例,然后使用`parse()`方法解析HTML内容。解析完成后,可以通过DOM接口如`...