0

I'm new to javascript and jQuery. I'm trying to get an XML string, update the value of one of the elements and get the new XML.

var header = "<RECORDS>" +
  "<USERDATA>" +
  "<USERID>ABC</USERID>" +
  "<UTEMPLATE>NEWLOAN</UTEMPLATE>" +
  "<FILEID></FILEID>" +
  "<ENTITY>DW</ENTITY>" +
  "</USERDATA>" +
  "</RECORDS>";

var fileID = "XXXXXXXXXXXXXXX";

var xDoc = $.parseXML(header);
var $xml = $(xDoc);

var $elmFileID = $xml.find("FILEID");

$elmFileID.text(fileID);

This is what I have so for from examples I've seen but I don't know if it's right or what to do next.

What I want is a resulting string(either the existing header var or even a new var) with the content of the FILEID element as "XXXXXXXXXXXXXXX". Eventually that string will come from a service.

2 Answers 2

1

You can use it this way:

var header = "<RECORDS>" +
  "<USERDATA>" +
  "<USERID>ABC</USERID>" +
  "<UTEMPLATE>NEWLOAN</UTEMPLATE>" +
  "<FILEID></FILEID>" +
  "<ENTITY>DW</ENTITY>" +
  "</USERDATA>" +
  "</RECORDS>";

var fileID = "XXXXXXXXXXXXXXX";

/* Convert Text to XML Object */
var xDoc = $.parseXML(header);

/* Change the fields required */
$(xDoc).find('FILEID').text(fileID)

/* Back to Text */
var newHeader = (new XMLSerializer()).serializeToString(xDoc);

/* Show changed XML */
console.log(newHeader);
Sign up to request clarification or add additional context in comments.

Comments

1

You can use an XMLSerializer, with a fallback to the .xml property if XMLSerializer is not available (e.g. in older versions of IE):

function xmlToString(xmlData) { 
    if (window.XMLSerializer){
        return (new XMLSerializer()).serializeToString(xmlData);
    }

    return xmlData.xml;
}

var header = "<RECORDS>" +
  "<USERDATA>" +
  "<USERID>ABC</USERID>" +
  "<UTEMPLATE>NEWLOAN</UTEMPLATE>" +
  "<FILEID></FILEID>" +
  "<ENTITY>DW</ENTITY>" +
  "</USERDATA>" +
  "</RECORDS>";

var fileID = "XXXXXXXXXXXXXXX";

var xDoc = $.parseXML(header);
var $xml = $(xDoc);

var $elmFileID = $xml.find("FILEID");

$elmFileID.text(fileID);
    

console.log(xmlToString(xDoc));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

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.