-1

無料で入手できる優れた XPath エバリュエーターのソース コードはありますか?

XML とあまり似ていないツリー スタイルのデータ構造があります。ただし、XPath エバリュエーター (軽量) に似たものを含めて、構造をナビゲートすることは素晴らしいことです。

次のような XPath 式に最適です。

\Node1*\Child20* \Node1 1 sum(\Node1*\value)

などなど...

自分たちでソリューションを実装するにはしばらく時間がかかると思いますが、残念ながら非常にタイトなスケジュールです。トークン化された文字列に基づいて構造を通過できるようにするには、ソースが必要です。

私は XPath ライブラリ自体を探しているのではなく、XPath スタイルの式を評価するためのコードだけを探しています。

XPath ベースの式を解釈し、独自の内部データ構造 (独自のオブジェクト モデル実装) を処理できるようにしたいと考えています。

旅行中にJXPathに出くわしたことはありますが、使用したことはありませんが、使用できるもののようです. 誰もこれを使ったことがありますか?

ありがとう、

アンデス

4

5 に答える 5

1

HTML Cleanerかなり良いです。私はいつもこのライブラリを Xpath パーサーに使用しています。試すことができます:http://htmlcleaner.sourceforge.net/

于 2011-10-06T09:29:09.987 に答える
1

Java での XPath の完全なオープン ソース実装は、Apache Xalan にあります。

于 2011-10-06T10:30:46.130 に答える
0

これには JXPath で問題ありません。ただし、 http://commons.apache.org/jxpath/users-guide.html#Custom_Pointers_and_Iteratorsで説明されているように、おそらくデータ構造と統合する必要があります。

私は最近同様のことをしましたが、静かにうまく機能しました。ドキュメンテーションは少し貧弱ですが、DomNodePointer/Dom***Iterator のような既存の実装を見ると、実装に大いに役立つはずです。

完全を期すために、Jaxen は同様のアプローチを許可します。しかし、ライセンス上の理由から、私はそれを自分で使用できませんでした。

于 2011-10-22T09:34:49.563 に答える
0

Saxon の NodeInfo インターフェイスを実装するためのデータ構造用のアダプターを作成すると、Saxon の XPath エンジンは任意の入力データ構造で動作します。これは、XPath プロセッサのソース コードを変更するよりもはるかにクリーンなアプローチのように思えます。

于 2011-10-06T12:36:56.383 に答える
0

Java には XPath サポートが組み込まれています。

次のコードは、xpath 式の値を抽出します。

String xml = ".... your xml goes here ...";
String expression = "... your XPath goes here ...";
DocumentBuilderFactory xmlFact = DocumentBuilderFactory.newInstance();
xmlFact.setNamespaceAware(true);
DocumentBuilder builder = xmlFact.newDocumentBuilder();
InputSource inputSource = new InputSource(new StringReader(xml));
Document doc = builder.parse(inputSource);
XPath xpath = XPathFactory.newInstance().newXPath();
String value = (String) xpath.evaluate(expression, doc, XPathConstants.STRING);
于 2011-10-06T09:43:28.113 に答える