我正在用JavaScript(node.js)進行一些服務器端編碼,我想編寫有效的xml。用JavaScript編寫xml的庫
我發現了兩個庫,但我相信還有更多/更好的!?
要求:開源(用於商業用途)
會很酷,如果該項目是快速,小巧並且使用簡單(按此順序)。我想有一個有點低級別的訪問ALA
doc.addElement('xy').addAttr('name', 'bob');
我正在用JavaScript(node.js)進行一些服務器端編碼,我想編寫有效的xml。用JavaScript編寫xml的庫
我發現了兩個庫,但我相信還有更多/更好的!?
要求:開源(用於商業用途)
會很酷,如果該項目是快速,小巧並且使用簡單(按此順序)。我想有一個有點低級別的訪問ALA
doc.addElement('xy').addAttr('name', 'bob');
有在http://github.com/ry/node/wiki/modules#parsers-xml
如果沒記錯的上市Node.js的一些XML庫,一個具有最大牽引力是http://github.com/polotek/libxmljs ,這似乎是麻省理工學院許可。
非常感謝!唯一的作者(不是解析器)的確是:http://github.com/polotek/libxmljs/wiki或做過我誤讀了!! – Karussell 2010-10-31 23:04:54
我最近發佈了node-genx,它是一個名爲Genx的小型C庫的包裝,它提供了node.js中快速且有效的xml生成。
安裝很簡單:
npm install genx
我已經發布了一些examples of using it產生在我的博客一個Atom feed和Sphinx xmlpipe2流。
感謝您的更新 – Karussell 2011-02-08 21:58:46
我發現林依晨Flesler的XMLWriter的構造函數是一個良好的開端從頭開始(在內存中)創建XML,看看這個
http://flesler.blogspot.com/2008/03/xmlwriter-for-javascript.html
例
function test(){
// XMLWriter will use DOMParser or Microsoft.XMLDOM
var v = new XMLWriter();
v.writeStartDocument(true);
v.writeElementString('test','Hello World');
v.writeAttributeString('foo','bar');
v.writeEndDocument();
console.log(v.flush());
}
結果
<?xml version="1.0" encoding="ISO-8859-1" standalone="true" ?>
<test foo="bar">Hello World</test>
一些注意事項,它不會轉義字符串,並且語法可能會變得很糟糕。您可以從作者的網站或 https://github.com/alexandern/XMLWriter下載(包括逃逸和獨立屬性錯誤修復)
如何將輸出寫入文件? – KamalSalem 2012-03-13 23:55:28
@KamalSalem。我假設你指的是一個Web瀏覽器寫入用戶的本地磁盤,如果這是不可能的。 – 2012-03-14 18:18:04
@AlexanderN您可以使用Data URI方案在瀏覽器中生成文件 – Theozaurus 2012-04-16 14:48:25
此lib中的Node.js是非常穩定和易於使用:https://github.com/minchenkov/simple-xml-writer
我創建兩個功能如下:
function loadXMLDoc(filename){
if (window.XMLHttpRequest){
xhttp=new XMLHttpRequest();
}
else {
xhttp=new ActiveXObject("Microsoft.XMLHTTP"); // code for IE 5-6
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
而且,要將XML寫入本地文件,請調用以下函數。
function writeXML()
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var FILENAME="D:/YourXMLName/xml";
var file = fso.CreateTextFile(FILENAME, true);
file.WriteLine('<?xml version="1.0" encoding="utf-8"?>\n');
file.WriteLine('<PersonInfo>\n');
file.WriteLine('></Person>\n');
}
file.WriteLine('</PersonInfo>\n');
file.Close();
}
我希望這可以幫助,否則,你可以嘗試Ariel Flesler's XMLWriter在內存中創建XML。
**選項1 **:文檔。寫('') **選項2 **:自己寫一個庫,你不會相信它有多容易。你需要的只是一個正確轉義HTML實體的函數(尖括號等)。只是不要使用命名空間,它們使庫和整個事情變得更加複雜。 (1)你會確切地知道圖書館正在做什麼,(2)你將有最簡單的圖書館專門爲你做這項工作。 –
mojuba
2010-10-31 22:16:04
但我無法想象,沒有一個單獨的lib已經這樣做了...正是這個問題:「尖括號等」:-) – Karussell 2010-10-31 22:29:15
@Karussell :(請在開始時用@mojuba回覆,看起來像就像那時SO發給我一個通知)。幾乎所有這些圖書館都面臨的問題是,它們比你通常需要的要多得多。至於HTML轉義,這裏是如何做到這一點:function html(s){return s.split(「&」)。join(「&」).split(「<」)。join(「<」).split (「>」)。join(「>」)}(對不起,格式化在這裏不可用) – mojuba 2010-10-31 22:40:56