Java-Bibliothek mit CSS-Selektoren, um XML zu analysieren

Gibt es eine jQuery wie JAVA / Android-Bibliothek, die CSS-Selektoren verwendet, um das XML zu analysieren?

Mögen :

  • Fehler "Paket android.support.v7.app existiert nicht"
  • Include Boost C ++ - Bibliothek in Android
  • Der Parameter setVisibility () kann nicht dynamisch gesetzt werden
  • Musste Daten zweimal laden, um die WebView-Aktualisierung in Android zu machen
  • Wie kann ich das Bild vertikale Mitte in einem linearen Layout ausrichten
  • Google Play Services GCM 9.2.0 bittet um "Update" zurück zu 9.0.0
  • String desc = myXML.find("bloc[type=pro]").get(0).attr("description"); 

    Chainability ist auch was ich suche, in der gleichen Weise von jQuery …

    Ich hoffe das existiert!

  • Abfangen eingehende SMS-Nachricht und Ändern Sie es
  • Beste Weg, um Breite / Höhe eines Widgets programmgesteuert zu ändern?
  • Android: Bestimmen Sie, ob Benachrichtigungen vom Benutzer ausgeschaltet werden
  • TextView onClick reagiert nicht auf einen einzigen Tipp
  • Wie kann ich in den Entwickleroptionen mit ADB wach bleiben?
  • Nicht in der Lage, Cloud-Option in Developer Services von Android Studio 2.2 zu sehen
  • 5 Solutions collect form web for “Java-Bibliothek mit CSS-Selektoren, um XML zu analysieren”

    Während ursprünglich als HTML-Parser mit CSS-Selektor-Unterstützung entworfen, funktioniert Jsoup auch für XML-Dokumente gut, wenn Ihre einzige Absicht ist, Daten zu extrahieren , nicht um Daten zu manipulieren .

     Document document = Jsoup.parse(xmlString); String desc = document.select("bloc[type=pro]").get(0).attr("description"); // ... 

    Sie sehen, die Syntax ist fast identisch mit dem, was Sie in der Frage hatten.

    Apache Jericho ist was du suchst.

    Ihr Beispiel würde aussehen

     String desc = source.getFirstElement( "type", "pro" ).getAttributeValue( "description" ); 

    Es ist ein Charme, HTML mit jericho zu analysieren, also denke ich, es ist noch einfacher für gut strukturiertes XML.

    Da gibt es einige Bugs in anderen Bibliotheken wie Jsoup und Jericho ist anders als das, was ich erwartet hatte,

    Ich schrieb eine Klasse, die die org.xml.sax.helpers.DefaultHandler die das XML analysieren. Ich schrieb dann zwei andere Klassen, die aussehen wie Element und Elements aus Jsoup mit zwei Funktionen namens find dass die CSS3 Selector und attr , die den Attribut Wert zurückgibt.

    Ich bin jetzt reinigen und kommentieren diesen Code … Ich werde die Bibliothek später für wer interessiert ist.

     xmlDoc.find("bloc[type=Pro]>act").attr("label"); 

    Ist jetzt möglich wie in jQuery!


    Bearbeiten!

    Hier ist der Link, um auf den Code zuzugreifen, wer interessiert ist: Google Code Project


    Umzug nach GitHub: https://github.com/ChristopheCVB/JavaXMLQuery

    Ich benutze XPath, um dieses Problem zu lösen. XML-Parsing wie JDOM ist ok bis zum XPath. Vielleicht sehen Sie, wie XPath funktioniert: p

     //bloc[@type="pro"][1]/@description 

    Xpath Index Start von 1, nicht 0

    http://www.w3schools.com/XPath/xpath_syntax.asp

    Die droidQuery Bibliothek kann viele der Dinge, die Sie suchen, tun. Obwohl die Syntax ein wenig anders ist, können Sie:

    • Erhalte View-Attribute mit verketteten, jQuery -style-Befehlen wie:

       CharSequence text = $.with(this, R.id.myTextView).attr("text"); 
    • Parse XML:

       Document dom = $.parseXML(myXMLString); 

    Wenn Sie ein Fan von jQuery sind , werden Sie sich freuen zu sehen, dass fast alle Funktionen, die es bietet, in droidQuery enthalten sind , und obwohl die Syntax kann sich manchmal unterscheiden, ist sein Hauptziel, so syntaktisch nah an jQuery wie möglich zu sein.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.