我正在使用 HTMLParser (org.htmlparser) 来解析 HTML。我用它来访问标签并获取标签属性,如下所示:
NodeVisitor linkvisitor = new NodeVisitor() {
public void visitTag(Tag tag) {
if ("script".equalsIgnoreCase(name)) {
String srcValue = tag.getAttribute("src");
// do stuff
}
}
// How to get value instead of tag?
}
但是现在我需要获取标签之间的值,例如 <script>
标签?
提前致谢。
最佳答案
因为您已经知道 Tag
是一个脚本标签,您应该能够将其转换为 ScriptTag
。那么你应该能够使用 CompositeTag.getStringText()
.
NodeVisitor linkvisitor = new NodeVisitor() {
public void visitTag(Tag tag) {
if (tag.getTagName().equals("SCRIPT")) {
ScriptTag script = (ScriptTag)tag;
String srcValue = script.getAttribute("src");
String text = script.getStringText();
}
}
};
请参阅Javadocs for NodeVisitor有关设置 visitTag
的说明方法。
如果您只关心具有结束标记的标记,您可以查看它是否是 CompositeTag 的实例。 ,否则标记没有结束标记 ( <tag/>
)。然后调用getStringText()上面提到的方法。
if(tag instanceof CompositeTag) {
CompositeTag cTag = (CompositeTag)tag;
String text = cTag.getStringText();
}
关于java - 如何使用 HTMLParser 获取标签之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511289/