2010-11-16 61 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实现两个库。