我有一个XML文件
<main>
<iframe>
<name>1234</name>
<url1>123</url1>
<url2>345</url2>
</iframe>
<iframe>
<name>563466</name>
<url1>345435</url1>
<url2>3453</url2>
</iframe>
</main>
我需要使用nodejs
在上面的xml文件中的main中插入以下元素<iframe>
<name>563466</name>
<url1>345435</url1>
<url2>3453</url2>
</iframe>
使用elementtree
模块创建xml文件,如下所示
var et = require('elementtree');
var XML = et.XML;
var ElementTree = et.ElementTree;
var element = et.Element;
var subElement = et.SubElement;
root = element('main');
root.set('xmlns', 'http://www.w3.org/2005/Atom');
iframeTag = subElement(root, 'iframe');
iframeTitle = subElement(iframeTag, 'title');
iframeTitle.text = title;
iframeUrl1 = subElement(iframeTag, 'url1');
iframeUrl1.text = url1;
iframeUrl2 = subElement(iframeTag, 'url2');
iframeUrl2.text = url2;
etree = new ElementTree(root);
xml = etree.write({'xml_declaration': false});
我可以使用elementtree
模块添加元素。但是,如果我重新启动服务器,root
将是未定义的。所以我不能以上述方式更新元素。谁能帮我解决一下?
答案 0 :(得分:0)
我找到了解决方案,
var dataNew, etreeNew;
dataNew = fs.readFileSync('report.xml').toString();
etreeNew = et.parse(dataNew);
iframeTag = subElement(etreeNew._root, 'iframe');
iframeTitle = subElement(iframeTag, 'title');
iframeTitle.text = title;
iframeUrl1 = subElement(iframeTag, 'url1');
iframeUrl1.text = url1;
iframeUrl2 = subElement(iframeTag, 'url2');
iframeUrl2.text = url2;
etree = new ElementTree(etreeNew._root);
xml = etree.write({'xml_declaration': false});