当我有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吗?
答案 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。