private static DocumentFragment parse(InputSource input) throws Exception {
DOMFragmentParser parser = new DOMFragmentParser();//HTML片段的DOM解析器。
//实现了一个HTML文件。提供对文档中,它的身体和标题顶层元素。
// 几种方法创建所有(注释,文本,元素等),基本类型的新节点。这些方法创建新的节点,但不要放置在文档树上。这些节点可能被放置在文档树使用
HTMLDocumentImpl doc = new HTMLDocumentImpl();
try {
//设置SAX2解析器中的任何功能的状态。
//设置SAX2解析器中的任何功能的状态。解析器可能无法识别功能,如果它不认识它,它可能无法完成请求。
parser.setFeature(
"http://cyberneko.org/html/features/augmentations", false);//是否将与HTML事件有关的infoset项包括在解析管道中。
parser.setProperty(
"http://cyberneko.org/html/properties/default-encoding",
defaultCharEncoding);//IANA encoding names 默认的HTML文件编码
parser
.setFeature(
"http://cyberneko.org/html/features/scanner/ignore-specified-charset",
true);
parser
.setFeature(
"http://cyberneko.org/html/features/balance-tags/ignore-outside-content",
false);
parser
.setFeature(
"http://cyberneko.org/html/features/balance-tags/document-fragment",
true);
parser.setFeature(
"http://cyberneko.org/html/features/report-errors", false);//是否报告错误
} catch (SAXException e) {
}
doc.setErrorChecking(false);
DocumentFragment res = doc.createDocumentFragment(); //创建一个空DocumentFragment对象。
DocumentFragment frag = doc.createDocumentFragment();
//解析一个文档片段
parser.parse(input, frag);//解析一个文档片段,解析成DocumentFragment对象,放到frag里=================??????????
System.out.println(frag+"frag");
//将子节点添加到所有节点的后面
res.appendChild(frag);
try {
while (true) {
frag = doc.createDocumentFragment();
parser.parse(input, frag);
if (!frag.hasChildNodes())
break;
System.out.println(" - new frag, "
+ frag.getChildNodes().getLength() + " nodes.");
res.appendChild(frag);
}
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
红色部分输出的是null
上面代码的意思是啥啊
懂得帮我解释一下啊
谢谢啦
分享到:
相关推荐
【标题】"自己用C++写的HTML文件解析程序(html-x)"是个人开发的一款基于C++实现的HTML解析器。这个程序旨在处理HTML文档,提取其中的信息或者进行特定的DOM操作。开发者通过C++编程语言实现了对HTML文档的解析,允许...
在Java编程领域,解析HTML是一项常见的任务,尤其在数据抓取、网页自动化或者信息提取等应用场景中。HTML(HyperText Markup Language)是用于构建网页的标准标记语言,而Java提供了多种库来帮助开发者处理和解析...
HTMLParser是一个Java库,专为解析HTML而设计。它提供了对HTML文档的解析能力,使得开发者可以方便地处理网页内容,提取有用的信息或者进行数据抓取。这个工具在IT行业中,尤其是在Web开发和数据处理领域,有着广泛...
用来解析HTML代码,从中提取有用的信息。类似于网络检索
本人写的电力行业报文解析工具,单文件免安装,随存随用,详细解析到每个字节。支持如下规约: 1.698.45报文解析;2.南网规约报文解析;3.376.2报文解析(茜茜写的);4.376.1规约帧结构解析;5.645.07表规约帧结构解析...
MSHTML最好用的HTML解析程序,最好用的HTMLParser,比HtmlAgilityPack好用一万倍
实现基本步骤: 操作摄像头,获取图片。 技术要点:MediaStream、GetUserMedia、File api。 利用canvas使用相关算法分析图片识别图片得出结果。 ...后台解析二维码主要用到ThoughtWorks.QRCode.dll
《解析数论基础》是一本深入探讨解析数论知识的数学教材,其作者是潘氏兄弟,继之前的《初等数论》和《代数数论》作品之后的又一力作,为数论爱好者和研究者提供了一套宝贵的学术资源。 解析数论是数学中研究数的...
ATR解析器是专门用于分析和解释这些数据包的工具,它可以帮助用户了解SIM卡的特性,并确保通信过程顺利进行。虽然描述中提到这个解析器还没有完成,但我们可以期待它能提供以下功能: 1. **解析ATR结构**:ATR通常...
支持全部ELF类型解析。支持32位/64位elf文件自适应解析、可解析elf文件头、程序头、节头、字符表、符号表、hash表、版本定义表、版本依赖表、动态信息表等。 更多详细介绍请访问:...
EPUB解析是数字出版领域中的一个重要技术,它涉及到电子书的结构化处理和内容提取。在Java编程语言中,EPUB解析通常通过特定的库或框架来实现,以方便开发者处理这种开放标准的电子书格式。FBreader是一个知名的开源...
部标JT808c#解析类库、报文格式解析、终端平台报文解析全集。
在本文中,我们将深入探讨C#中的表达式解析器,特别是在修正了算符优先级错误之后的实现。C#表达式解析器是一个程序,它能够分析输入的字符串表达式,并将其转换为计算机可以理解的形式,以便执行计算或逻辑操作。 ...
"c++解析html"的主题聚焦于如何使用C++来解析和操作HTML文档,这在开发网络爬虫、网页渲染或者数据提取等场景中非常有用。 "htmlcxx"是本项目使用的开源库,它是一个C++编写的HTML解析器,允许开发者通过C++代码来...
Java完美解析PDM,这是一种利用Java编程语言对Power Designer创建的PDM(Physical Data Model,物理数据模型)文件进行解析的技术。PDM是数据库设计工具Power Designer中的一个重要概念,它通常包含了数据库表、列、...
空间解析几何是数学中一个重要的分支,它主要研究空间中点、线、面以及更复杂几何结构的位置关系和数量关系。苏步青、华宣积、忻元龙和张国梁编著的《空间解析几何》是该领域内一本经典教材,由上海科学技术出版社...
RTF(Rich Text Format)文件格式解析是一种技术,用于处理包含丰富格式文本的文档。这种格式由Microsoft在1980年代后期开发,目的是提供一个跨平台和应用程序间的兼容方式来存储格式化文本。它使用一种特殊的编码...
在C#中解析DXF文件,你需要对文件的结构有深入的理解,并能够编写代码来读取和解释这些数据。以下是一些关键步骤: 1. **打开文件**:使用C#的`System.IO`类库,可以方便地打开和读取DXF文件。通常,我们使用`...
### 解决Ubuntu域名无法解析的方法详解 在日常的Linux系统管理与使用中,域名解析问题是一种常见的网络故障,尤其在Ubuntu系统中,由于其高度定制化的特性,有时会导致域名解析功能异常,严重影响用户访问互联网...
在本主题中,“使用antlrv3实现sql的解析”指的是利用ANTLR v3版本来创建一个解析器,该解析器可以理解并解析SQL语句,特别是针对Oracle和Microsoft SQL Server(MSSQL)的语法。 ANTLR工作原理主要包括以下几个...