2010-11-16 63 views
10

我試圖解析一個XML字符串libxmljs (https://github.com/polotek/libxmljs)。我有一些問題,但。我需要將邏輯應用於我正在解析的內容,並根據定義的內容和不是什麼內容進行返回。正因爲如此,我沒有看到SAX風格的解析器是一個有效的選項。解析XML Libxmljs(Node.js)

我願意看看其他的選擇,如果我可以實現我在找什麼。能夠選擇像DOMParser xmlDoc.getElementsById('firstName')[0].childNodes[0].nodeValue等元素將會很棒...

+0

我猜README的確關注於sax解析。大多數人使用DOM的東西。我會更新它以清楚說明DOM是可能的並給出示例。 – Marco 2010-11-16 19:37:37

回答

17

libxmljs支持DOM以及SAX樣式解析。

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

該API是自定義的,不遵循W3C /瀏覽器規範(它在我的列表中)。您將希望使用xpath來查詢文檔以獲取所需的內容。

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

請注意,childNodes和文本是函數調用。看看文檔。

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

據我所知,libxmljs和jsdom是有體面的DOM實現兩個庫。