【发布时间】:2010-04-27 03:34:50
【问题描述】:
如何使用 Java HTML 解析器库处理结束标记(例如:</h1>)?
例如,如果我有以下情况:
public class MyFilter implements NodeFilter {
public boolean accept(Node node) {
if (node instanceof TagNode) {
TagNode theNode = (TagNode) node;
if (theNode.getRawTagName().equals("h1")) {
return true;
} else {
return false;
}
}
return false;
}
}
public class MyParser {
public final String parseString(String input) {
Parser parser = new Parser();
MyFilter theFilter = new MyFilter();
parser.setInputHTML("<h1>Welcome, User</h1>");
NodeList theList = parser.parse(theFilter);
return theList.toHtml();
}
}
当我运行解析器时,我得到以下输出:
<h1>Welcome, User</h1>Welcome, User</h1>
NodeList 包含一个大小为 3 的列表,其中包含以下实体:
(tagNode) <h1>
(textNode) Welcome, User
(tagNode) </h1>
我希望输出为“<h1>Welcome, User</h1>”。有人看到我的示例解析器有什么问题吗?
【问题讨论】: