2011-06-28 8 views
0

HTMLを解析するためにHTMLParser(org.htmlparser)を使用しています。しかし、今、私は、言って、タグの間に<script>タグ値を取得する必要がありHTMLParserを持つタグの間で値を取得する方法

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?  
} 

:私はタグを訪問し、タグはこの1つのような属性を取得するためにそれを使用していますか?

ありがとうございます。

+0

htmlparserに問題がありますが、JSoupを考慮しているわけではありませんか? –

+0

@Andrew、ヒントのおかげで。 JSoupのサイトにちょうど来て、それは面白いように見えます、私は間違いなくそれを調べます。結局のところ、私は非常に疎結合した私のコードの設計と私はパーサーからパーサーに切り替えることができます。再度、感謝します。 – xybrek

答えて

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方法をSETINGについての説明についてはJavadocs for NodeVisitorを参照してください。

終了タグを持つタグのみに関心がある場合は、それがCompositeTagのインスタンスであるかどうかを確認できます。それ以外の場合、タグには終了タグ(<tag/>)がありません。その後、上記のgetStringText()メソッドを呼び出します。

if(tag instanceof CompositeTag) { 
    CompositeTag cTag = (CompositeTag)tag; 
    String text = cTag.getStringText(); 
} 
関連する問題