CSSセレクターを使用してXMLを解析するJAVA/AndroidライブラリのようなjQueryはありますか?
好き :
String desc = myXML.find("bloc[type=pro]").get(0).attr("description");
jQueryと同じように、連鎖性も私が探しているものです...
私はこれが存在することを願っています!
CSSセレクターを使用してXMLを解析するJAVA/AndroidライブラリのようなjQueryはありますか?
好き :
String desc = myXML.find("bloc[type=pro]").get(0).attr("description");
jQueryと同じように、連鎖性も私が探しているものです...
私はこれが存在することを願っています!
Jsoupは当初、CSS セレクターをサポートする HTML パーサーとして設計されていましたが、データを操作することではなく、データを抽出することが唯一の目的である場合、XML ドキュメントに対しても適切に機能します。
Document document = Jsoup.parse(xmlString);
String desc = document.select("bloc[type=pro]").get(0).attr("description");
// ...
ご覧のとおり、構文は質問で使用したものとほぼ同じです。
Apache Jerichoはあなたが探しているものです。
あなたの例は次のようになります
String desc = source.getFirstElement( "type", "pro" ).getAttributeValue( "description" );
HTML を jericho で解析できるのは魅力なので、うまく構造化された XML の方がさらに簡単だと思います。
その問題を解決するために XPath を使用します。JDOM のような XML 解析は、XPath に問題ありません。おそらくjQueryはXPathがどのように機能するかを確認します:p
//bloc[@type="pro"][1]/@description
Xpath インデックスは 0 ではなく 1 から始まります
JsoupやJerichoなどの他のライブラリにはいくつかのバグがあるため、期待していたものとは異なります。
org.xml.sax.helpers.DefaultHandler
XMLを解析するクラス拡張を作成しました。次に、CSS3 セレクターを処理し、属性値を返す2 つの関数が呼び出される JsoupElement
に似た 2 つのクラスを作成しました。Elements
find
attr
私は今、そのコードをきれいにしてコメントしています...興味のある人のために後でライブラリを投稿します。
xmlDoc.find("bloc[type=Pro]>act").attr("label");
jQueryのように可能になりました!
編集 !
興味のある人のためのコードにアクセスするためのリンクは次のとおりです: Google Code Project
GitHub への移動: https://github.com/ChristopheCVB/JavaXMLQuery