使用 jQuery 更新 XML 字符串

Update XML string with jQuery

本文关键字:字符串 XML 更新 jQuery 使用      更新时间:2023-09-26

我是javascript和jQuery的新手。我正在尝试获取一个 XML 字符串,更新其中一个元素的值并获取新的 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);

这就是我从我看到的例子中得到的,但我不知道它是否正确或下一步该怎么做。

我想要的是一个结果字符串(现有的标头变量,甚至是新的变量),其中 FILEID 元素的内容为"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX最终,该字符串将来自服务。

你可以这样使用它:

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);
您可以使用

XMLSerializer,如果 XMLSerializer 不可用(例如,在旧版本的 IE 中),则回退到 .xml 属性:

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>