1

I have a XML file as

<main>
<iframe>
    <name>1234</name>
    <url1>123</url1>
    <url2>345</url2>
</iframe>
<iframe>
    <name>563466</name>
    <url1>345435</url1>
    <url2>3453</url2>
</iframe>
</main>

I need to insert following element inside main in the above xml file using nodejs

<iframe>
    <name>563466</name>
    <url1>345435</url1>
    <url2>3453</url2>
</iframe>

Am using elementtree module for creating xml file like as follows

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

I can add elements by using elementtree module. But if I restart the server, root will be undefined. So I cant update elements in the above manner. Can anyone help me to resolve?

1 Answer 1

1

I found the solution,

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.