簡體   English   中英

使用JavaScript編寫xml的庫

[英]Libraries to write xml with JavaScript

我正在使用JavaScript(node.js)做一些服務器端編碼,我想編寫有效的xml。

我找到了兩個庫,但是我確定還有更多/更好!

要求:開源(用於商業用途)

如果項目快速,小巧且易於使用(按此順序),那將很酷。 我想要一個較低級別的訪問權限

doc.addElement('xy').addAttr('name', 'bob');

我創建了兩個函數,如下所示:

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的XMLWriter在內存中創建XML。

http://github.com/ry/node/wiki/modules#parsers-xml中列出了許多用於node.js的XML庫。

如果有內存可用,那么具有最大吸引力的是http://github.com/polotek/libxmljs ,它似乎是MIT許可的。

我最近發布了node-genx ,它是一個名為Genx的小型C庫的包裝,該庫在node.js中提供了快速有效的xml生成。

安裝很簡單:

npm install genx

我在博客上發布了一些使用它生成Atom提要和Sphinx xmlpipe2流的示例

我發現Ariel 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下載 (包括獨立屬性的轉義和錯誤修復)

Node.js的這個庫非常穩定且易於使用: https : //github.com/minchenkov/simple-xml-writer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM