我正在使用JavaScript(node.js)进行一些服务器端编码,我想编写有效的xml。
我发现了两个库,但我相信还有更多/更好的游戏!?
要求:开源(用于商业用途)
如果项目快速,小巧且易于使用(按此顺序),那将会很酷。我想有一个更低级别访问ala
doc.addElement('xy').addAttr('name', 'bob');
答案 0 :(得分:3)
我创建了两个函数,如下所示:
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)
在http://github.com/ry/node/wiki/modules#parsers-xml
列出了node.js的许多XML库如果记忆有效,那么牵引力最大的是http://github.com/polotek/libxmljs,似乎是麻省理工学院的许可。
答案 2 :(得分:2)
我最近发布了node-genx,它是一个名为Genx的小型C库的包装器,它在node.js中提供快速有效的xml生成。
安装很简单:
npm install genx
我已经发布了一些examples of using it来在我的博客上生成Atom Feed和Sphinx xmlpipe2流。
答案 3 :(得分:1)
我发现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>
有几点需要注意,它不会转义字符串,并且语法可能会让coyote++变得丑陋。您可以从作者的网站或从中下载 https://github.com/alexandern/XMLWriter(包括对独立属性的转义和错误修复)
答案 4 :(得分:0)
这个Node.js的lib非常稳定且易于使用:https://github.com/minchenkov/simple-xml-writer