我正在使用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();
}
}
};
有关设置
visitTag
方法的说明,请参见Javadocs for NodeVisitor。如果仅关注带有结束标记的标记,则可以查看它是否是CompositeTag的实例,否则该标记没有结束标记(
<tag/>
)。然后调用上面提到的getStringText()方法。if(tag instanceof CompositeTag) {
CompositeTag cTag = (CompositeTag)tag;
String text = cTag.getStringText();
}