我有一個巨大的XML文檔,我只想從中提取某些數據。到文檔的鏈接是: https://pastebin.com/mNXWt7dz迭代節點js中的Xml節點
我要分析此XML結構從每個client-mac
,client-manuf
和last_signal_dbm
獲得XML的每個wireless-client
節點內的值。文檔中還有許多節點。 我使用以下js代碼:
var libxmljs = require("libxmljs");
var fs = require("fs");
var xmlPath = "./Kismet.netxml";
var fileData = fs.readFileSync(xmlPath, 'ascii');
var xmlDoc = libxmljs.parseXml(fileData);
var children = xmlDoc.root();
console.log(children.get("//wireless-network//wireless-client//client-mac").text());
使用此代碼我只能解析從第一wireless-network
的第一wireless-client
節點值。我想要所有具有相同名稱的節點的值。我該怎麼辦?我已經嘗試過其他XML解析器,但他們都沒有爲我工作。
BTW-XML文件說,這是寫與ISO-8859-1字符編碼,但您使用的ASCII字符編碼閱讀它。 –
這會導致解析中的任何問題嗎? –
這可能是因爲元素和屬性[名稱](https://www.w3.org/TR/REC-xml/#NT-NameStartChar)中的字符不必是來自[C0控件和基本拉丁語](http ://www.unicode.org/charts/nameslist/index.html)塊。它也可能會破壞文本和評論。我不是說這是你目前的問題,只是它打破了字符編碼的基本規則:用寫作的方式閱讀。 –