0

我在这里尝试完成一个非常简单的任务:使用 jQuery 修改 XML 字符串并取回修改后的字符串。

我认为之前,我可以使用 .html() 函数来执行此操作,但我认为他们摆脱了解析 XML 文档的功能。

所以,这里是代码:

var tempXML = "<node1><node2>Content #1</node2></node1>";
var parsedXML = $.parseXML(tempXML);
$(parsedXML).find('node2').text('XXXXXX');
alert($(parsedXML).find('node2').text());  // That works, it will display XXXXXX

现在,正如我所怀疑的那样, tempXML var 没有被修改。

那么,如何获得应该显示为“XXXXXX”的 XML 代码?

调用 $(parsedXML).text(); 只返回 XXXXXX 并且 .html() 没有为对象定义...

4

1 回答 1

1

这是一个技巧,但这里是:

var tempXML = "<node1><node2>Content #1</node2></node1>";
var parsedXML = $.parseXML(tempXML);
$(parsedXML).find('node2').text('XXXXXX');

alert($("<div>").append($(parsedXML).find('node2')).html());​

编辑:或者,我认为这是更可靠的解决方案:

function XMLToString(oXML) {   
    if (window.ActiveXObject) {     
        return oXML.xml;   
    } else {     
        return (new XMLSerializer()).serializeToString(oXML);   
    } 
}
var tempXML = "<node1><node2>Content #1</node2></node1>";
var parsedXML = $.parseXML(tempXML);
$(parsedXML).find('node2').text('XXXXXX');
alert(XMLToString($(parsedXML).find('node2')[0]));

jsFiddle

于 2012-09-04T21:57:34.543 回答