2010-12-01 16 views
1

html文字列のxpathを評価できるライブラリはどれですか?Java:XMLツールのHTML文字列を解析する方法は?

私はjavaxのパッケージを使用して試してみましたが、これは失敗しているようだ:

String docroot = "<div><i>items <b>sold</b></i></div>"; 
XPath xxpath = XPathFactory.newInstance().newXPath(); 
InputSource docroot = new InputSource(new StringReader(subelements)); 
String result = (String) xxpath.evaluate("//b", docroot, XPathConstants.STRING); 
+3

が拡大する次の時間を覚えておいてくださいsubstantionally「失敗しているようです」。 –

答えて

3

は、代わりに次のことを試してみてください、あなたのコードサンプルに多少の誤差があった:

import java.io.StringReader; 
import javax.xml.xpath.XPath; 
import javax.xml.xpath.XPathConstants; 
import javax.xml.xpath.XPathFactory; 
import org.xml.sax.InputSource; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     String docroot = "<div><i>items <b>sold</b></i></div>"; 
     XPath xxpath = XPathFactory.newInstance().newXPath(); 
     InputSource inputSource = new InputSource(new StringReader(docroot)); 
     String result = (String) xxpath.evaluate("//b", inputSource, XPathConstants.STRING); 
     System.out.println(result); 
    } 

} 
2

あなたがXMLとしてHTMLに解析するのに十分な寛大なパーサを必要とし、それらは稀です。私はTagSoup -​​- それを行うことができると信じていますが、それを見てからそれは長い時間でした。 (ここでは、より:​​)

はあなただけでXHTMLのスニペットを提供することはできません何らかの理由はありますか?

2

有効なXMLドキュメントオブジェクトを生成できるJava HTML解析ライブラリが必要です。この非科学的な数字に基づいてlibrary comparisonHTML Cleanerと表示されます。 HTMLクリーナーサイトから

:主な動機は、XPath、XQueryおよび XSLTとXML 処理のための通常のHTMLを調製 であったが

、 HtmlCleanerによって生成された構造化データが消費されてもよく、 が処理しますメニューの他の方法で。

このdocumentation linkは、HTML文字列を読み込み、XPathクエリを実行し、結果を処理する方法の例を示しています。

関連する問題