我怎样才能获得HTML的内容

时间:2009-12-23 14:37:08

标签: java html dom

当我有html:

<html>
<head>
</head>
<body>
 text
  <div>
  text2
    <div>
    text3
    </div>
  </div>
</body>
</html>

如何在身体的JAVA内容中使用DOM解析器: text <div> text2 <div> text3 </div> </div> 因为方法getTextContent返回:text text2 text3。 - 所以没有标签。

SAX可以,但也可以使用DOM吗?

2 个答案:

答案 0 :(得分:1)

getTextContent表现得像我期望的那样 - 获取HTML片段的纹理内容。您是否可以检查DOM解析器的API文档,看看是否有类似getHtmlContent这样的名称的方法?

答案 1 :(得分:1)

您需要将文档解析为DOM并仅序列化您想要的DOM部分。使用DOM Level 3 LS接口,您可以serialise单个节点的外部XML:

LSSerializer serializer= implementation.createLSSerializer();
String html= serializer.writeToString(node);

要获取内部XML,您需要依次writeToString每个子节点(例如,进入StringBuffer)。

根据您使用的DOM实现,可能有其他非标准方法。将HTML序列化为XML也可能存在风险,如果这就是您正在做的事情......例如。标准的XML序列化程序可能会为空标记输出一个自动关闭标记,这会使浏览器将输出解析为遗留HTML。