我正在使用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>
标签?
提前致谢。
答案 0 :(得分:1)
因为您已经知道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();
}