Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java上逐个元素解析HTML_Java_Html_Parsing - Fatal编程技术网

在Java上逐个元素解析HTML

在Java上逐个元素解析HTML,java,html,parsing,Java,Html,Parsing,我有一个HTML文件: 第一组 第二组 第三组 听起来像是要对HTML文档中的所有文本节点执行一个操作。幸运的是,大多数解析库(包括XML库)都会以迭代器的形式预先为您提供所有节点 我建议您使用Jericho和call,只需检查它是否是文本节点,并将其打印出来即可。Nootice该链接有示例代码,但为了方便起见,我会将其粘贴到这里: for (Iterator<Segment> nodeIterator=segment.getNoteIterator(); nodeIterat

我有一个HTML文件:


第一组
第二组
第三组

听起来像是要对HTML文档中的所有文本节点执行一个操作。幸运的是,大多数解析库(包括XML库)都会以迭代器的形式预先为您提供所有节点

我建议您使用Jericho和call,只需检查它是否是文本节点,并将其打印出来即可。Nootice该链接有示例代码,但为了方便起见,我会将其粘贴到这里:

 for (Iterator<Segment> nodeIterator=segment.getNoteIterator(); nodeIterator.hasNext();) {
   Segment nodeSegment=nodeIterator.next();
   if (nodeSegment instanceof Tag) {
     Tag tag=(Tag)nodeSegment;
     // HANDLE TAG
     // Uncomment the following line to ensure each tag is valid XML:
     // writer.write(tag.tidy()); continue;
   } else if (nodeSegment instanceof CharacterReference) {
     CharacterReference characterReference=(CharacterReference)nodeSegment;
     // HANDLE CHARACTER REFERENCE
     // Uncomment the following line to decode all character references instead of copying them verbatim:
     // characterReference.appendCharTo(writer); continue;
   } else {
     // HANDLE PLAIN TEXT
   }
   // unless specific handling has prevented getting to here, simply output the segment as is:
   //writer.write(nodeSegment.toString());
 }
for(迭代器nodeIterator=segment.getNoteIterator();nodeIterator.hasNext();){
段nodeSegment=nodeIterator.next();
if(nodeSegment instanceof标记){
标签标签=(标签)节点分段;
//手柄标签
//取消对以下行的注释,以确保每个标记都是有效的XML:
//writer.write(tag.tidy());继续;
}else if(字符引用的节点分段实例){
CharacterReference CharacterReference=(CharacterReference)节点分段;
//句柄字符引用
//取消对以下行的注释以解码所有字符引用,而不是逐字复制它们:
//characterReference.appendCharTo(编写器);继续;
}否则{
//处理纯文本
}
//除非特定处理阻止了到达此处,否则只需按原样输出段:
//writer.write(nodeSegment.toString());
}
//句柄字符引用
//句柄纯文本
中,您要添加字符串附加代码