如何让HtmlCleaner处理空内容标签时不生成自闭合的标签?

自风 发布于 2013/01/26 17:55
阅读 1K+
收藏 0
1. 现在有一HTML片段:
<div class='myclass'>
    I Love <u>OSChina.net</u>
    nothing.
    <u></u>
</div>
2. 使用 HtmlCleaner + XPath 获取到myclass标签内的内容: 
HtmlCleaner cleaner = new HtmlCleaner();
TagNode tagNode = 
    cleaner.clean("<div class='myclass'>I Love <u>OSChina.net</u>nothing.<u></u></div>");
Object[] nodeVals = tagNode.evaluateXPath("//div[@class='myclass']");
for (Object tag : nodeVals){
    TagNode _tag = (TagNode)tag;
    String rs = ParserUtil.xml(_tag,false);
    System.out.println(rs);
}

3. 运行上述代码后得到的结果是:
<div class="myclass">
    I Love <u>OSChina.net</u>
    nothing.
    <u />
</div>

发现 <u></u> 变成了 <u /> 了,而 u 这个标签是不可以自闭合的,如果这段代码放到浏览器去解析,会发现 <u /> 后面跟着的 html 内容 css 样式将受到影响,全部文字多了下划线,这让人好生讨厌 !

我想要的结果是 <u></u> => <u></u> 或者

现在要解决上述问题该怎么办呢?

加载中
0
自风
自风
看了下HtmlCleaner的Properties配置,貌似没有什么选项解决这个问题,求帮忙,各路 OSC 的哥哥姐姐
0
皮皮蟹
皮皮蟹
将这个属性useEmptyElementTags设置为false
参考 htmlcleaner.sourceforge.net/parameters.php
返回顶部
顶部