我正在尝试使用libxmljs (https://github.com/polotek/libxmljs)解析XML字符串。我有一些问题。我需要将逻辑应用于我正在解析的内容,并根据定义的内容和不定义的内容返回。因此,我没有看到SAX样式的解析器是有效的选项。
如果我能实现我正在寻找的目标,我愿意考虑其他选择。能够选择像DOMParser xmlDoc.getElementsById('firstName')[0].childNodes[0].nodeValue
这样的元素会很棒......
答案 0 :(得分: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和text是函数调用。看看文档。
https://github.com/polotek/libxmljs/wiki/Element
据我所知,libxmljs和jsdom是两个具有良好DOM实现的库。