2013-03-13 153 views
2

我環顧四周,沒有看到明顯的解析節點中的XML的方法。我假設有一些相對直接的XML對象,我可以傳遞一個字符串或URL,但我沒有在規範中找到類似的東西。我需要一個外部庫嗎?如果是這樣,你會推薦哪一個?我不需要xPath(雖然我不介意),只要我可以以一種明顯的方式遍歷樹(測試nodeType == ElementNode並通過子節點循環)。在Node.js中解析XML字符串的最簡單方法是什麼?

回答

1

列出了各種各樣的XML模塊here或許您可能會發現一個最適合您的模塊。我知道的一個流行的是sax-js。如果您已經熟悉該庫,也有libxml bindings

+0

我不安裝它,但我會考慮它。非常感謝。 – 2013-03-13 03:22:32

0

如果不是絕對要求必須完成服務器端,那麼在客戶端上,您可以使用XMLSerializer解析爲字符串,並將DOMParser解析爲DOM。

XMLSerializer的實施例(從DOM到字符串):

var XMLS = new XMLSerializer(); 
var elem = document; 
var xml_str = XMLS.serializeToString(elem); 
console.log(xml_str); 

的DOMParser實施例(從字符串到DOM):

var parser = new DOMParser(); 
var doc = parser.parseFromString(xml_str, "application/xml"); 
console.log(doc); 
+0

我的環境中沒有「客戶端」。這實際上是以XML的形式解析從第三方提供者返回到cron進程的響應。但是,謝謝。 :) – 2013-03-13 03:41:34

+0

這應該不會被原先的問題downvoted。工作得很好。 – invapid 2017-09-27 18:24:01

5

我建議xml2js,一個簡單的XML到JavaScript對象轉換器。然後可以迭代生成的對象。代碼從網頁摘要:

var parseString = require('xml2js').parseString; 
var xml = "<root>Hello xml2js!</root>" 
parseString(xml, function (err, result) { 
    console.dir(result); 
}); 

您可以通過使用npm install xml2js

相關問題