Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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到XML解析器,用于解析HTML的一部分_Java_Html_Xml_Html Parsing - Fatal编程技术网

java中的HTML到XML解析器,用于解析HTML的一部分

java中的HTML到XML解析器,用于解析HTML的一部分,java,html,xml,html-parsing,Java,Html,Xml,Html Parsing,我想将html的某些部分解析为XML <div class="superviewer">text</div> <p>-----content----<p> <p>-----content----<p> <p>-----content----<p> <div class="superviewer">text</div> <p>-----conten

我想将html的某些部分解析为XML

<div class="superviewer">text</div>
  <p>-----content----<p>
  <p>-----content----<p>
  <p>-----content----<p>

<div class="superviewer">text</div>
   <p>-----content----<p>
  <p>-----content----<p>
<div class="superviewer">text</div>
   <p>-----content----<p>
</div>
<div class="superviewer">text</div>
文本
-----内容--
-----内容--
-----内容--
文本
-----内容--
-----内容--
文本
-----内容--
文本
所需输出:

<superviewer>
   <content>
    <p>----content----</p>
    <p>----content----</p>
    <p>----content----</p>
   </content>
</superuser>

<superviewer>
  <content>
    <p>----content----</p>
    <p>----content----</p>
   </content>
</superuser>

<superviewer>
  <content>
    <p>----content----</p>
  </content>
</superuser>

<superviewer>
  <content>
  </content>
</superuser>

----内容----

----内容----

----内容----

----内容----

----内容----

----内容----

这就是我正在做的:

    Document doc = Jsoup.parse(new File("filename"));        
    Elements superUserInfos = doc.getElementsByClass("superviewer");        
    for(Element superUserInfo:superUserInfos){
        String info=superUserInfo.text();
        Elements siblings = superUserInfo.siblingElements();
        List<Element> elementsBetween = new ArrayList<Element>();
        for (Element sibling:siblings) {
          if ((! "div".equals(sibling.tagName())))
            elementsBetween.add(sibling);
            break;
        }
        if (! elementsBetween.isEmpty()){
          processElementsBetween(elementsBetween);
        elementsBetween.clear();
        }
    }
documentdoc=Jsoup.parse(新文件(“文件名”);
Elements superUserInfos=doc.getElementsByClass(“superviewer”);
对于(元素superUserInfo:superUserInfos){
String info=superUserInfo.text();
Elements sides=superUserInfo.siblingElements();
List elementsBetween=new ArrayList();
for(元素同级:同级){
if((!“div”.equals(同级标记名()))
添加之间的元素(同级);
打破
}
如果(!elementsBetween.isEmpty()){
processElementsBetween(elementsBetween);
.clear()之间的元素;
}
}

请建议我如何做到这一点,我尝试使用Jsoup,但我无法获得正确格式的内容。在每个superviewer中,所有内容都显示出来。

通常,HTML不是XML,因此xslt处理器无法解析,就像您的情况一样,
----内容---

需要终止

。使用xhtml您可能会成功。我正在尝试使用JSOUP转换为xml,然后再次根据XSTLok进行格式化,但我没有正确理解,您是否可以显示(编辑问题)您使用JSOUP所做的工作,以确定“每个supterviewer中显示的所有内容”的问题,HTML不是XML,因此xslt处理器无法解析HTML,就像您的例子中的
----内容--
需要终止

。使用xhtml您可能会成功。我正在尝试使用JSOUP转换为xml,然后再次根据XSTLok进行格式化,但我没有正确理解,您是否可以显示(编辑问题)您使用JSOUP所做的工作,以确定“每个supterviewer中显示的所有内容”的问题?