2010-11-16 19 views
10

Ich versuche, eine XML-Zeichenfolge mit libxmljs (https://github.com/polotek/libxmljs) zu analysieren. Ich habe jedoch einige Probleme. Ich muss Logik anwenden, was ich analysiere und zurückgebe, basierend darauf, was definiert ist und was nicht. Aus diesem Grund sehe ich keinen SAX-artigen Parser als eine gültige Option.Parse XML Libxmljs (Node.js)

Ich bin bereit, auf andere Alternativen zu schauen, wenn ich erreichen kann, was ich suche. In der Lage zu sein, Elemente wie DOMParser xmlDoc.getElementsById('firstName')[0].childNodes[0].nodeValue auszuwählen, wäre fantastisch ...

+0

Ich denke, das README konzentriert sich auf das Parsing von Saxophonen. Die meisten Leute benutzen jedoch das DOM-Zeug. Ich werde es aktualisieren, um zu verdeutlichen, dass DOM möglich ist und Beispiele geben. – Marco

Antwort

17

libxmljs unterstützt sowohl DOM als auch SAX Style Parsing.

var xmlDoc = libxmljs.parseXmlString('<item><data id="firstName">Your Name</data></item>'); 
var xmlDoc2 = libxmljs.parseXmlFile('mydata.xml'); 

Die API ist benutzerdefiniert und folgt nicht der W3C/Browser-Spezifikation (es ist auf meiner Liste). Sie werden Xpath verwenden, um das Dokument nach dem gewünschten Inhalt abzufragen.

xmlDoc.find("//[@id='firstName']")[0].childNodes()[0].text() 

Beachten Sie, dass childNodes und Text Funktionsaufrufe sind. Sehen Sie sich die Dokumentation an.

https://github.com/polotek/libxmljs/wiki/Element

Soweit ich weiß, libxmljs und jsdom sind die beiden Bibliotheken, die anständige DOM-Implementierungen haben.