【问题标题】:Add Elements to XML file using nodejs使用 nodejs 将元素添加到 XML 文件
【发布时间】:2014-09-12 18:50:23
【问题描述】:

我有一个 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 将是未定义的。所以我不能以上述方式更新元素。谁能帮我解决?

【问题讨论】:

    标签: javascript xml node.js xml-parsing elementtree


    【解决方案1】:

    我找到了解决办法,

    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});
    

    For elementtree parsing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      相关资源
      最近更新 更多