Javascript 如何使用JQuery修改XML

Javascript 如何使用JQuery修改XML,javascript,jquery,Javascript,Jquery,我正在尝试使用Javascript修改XML结构中的状态标志。通过互联网上的例子,我认为这应该是可行的: test = "<?xml version='1.0' encoding='utf-8' standalone='no' ?>" + "<resultaat>" + "<type>6</type>" + "<status>I</status>" + "<st

我正在尝试使用Javascript修改XML结构中的状态标志。通过互联网上的例子,我认为这应该是可行的:

test = "<?xml version='1.0' encoding='utf-8' standalone='no' ?>" + 
    "<resultaat>" +
        "<type>6</type>" +
        "<status>I</status>" +
        "<start_datum>2012-06-16 00:00:00</start_datum>" +
        "<eind_datum></eind_datum>" +
    "</resultaat>"
然而,结果是测试未被修改,仍然包含旧状态
I

谢谢您的回答

正确的观点是,您需要首先转换为XMLObject并修改它

下面是我最终如何做到这一点的:

/* Convert Text to XML Object */
doc = $.parseXML(test)

/* Change the fields required */
$(doc).find('status').text('D')

/* Back to Text */
str = (new XMLSerializer()).serializeToString(doc);

您需要编写类似这样的代码

test = "<?xml version='1.0' encoding='utf-8' standalone='no' ?>" + 
    "<resultaat>" +
        "<type>6</type>" +
        "<status>I</status>" +
        "<start_datum>2012-06-16 00:00:00</start_datum>" +
        "<eind_datum></eind_datum>" +
    "</resultaat>";

def = $(test).find("status").text("D");

console.log(def);
test=”“+
"" +
"6" +
“我”+
"2012-06-16 00:00:00" +
"" +
"";
def=$(test).find(“status”).text(“D”);
控制台日志(def);
为了让它发挥作用……

var xml=“RSS Title”, xmlDoc=$.parseXML(xml), $xml=$(xmlDoc), $title=$xml.find(“title”); /*将“RSS标题”附加到#someElement*/ $(“#someElement”).append($title.text()); /*将标题更改为“XML标题”*/ $title.text(“XML标题”); /*将“XML标题”附加到#另一个元素*/ $(“#anotherElement”).append($title.text());
嗯,这个答案很有效。。。但并非总是如此。我正在使用一个旧的webkit版本,它捆绑在Tidesdk中,我有一些奇怪的问题:

$(xml).find("whatever").append("<however></however>");
// doesn't modify xml

$("<however></however>").appendTo($(xml).find("whatever"));
// does modify xml
$(xml).find(“whatever”).append(“”);
//不修改xml
$(“”).appendTo($(xml.find(“whatever”);
//是否修改xml

??:??)

这是因为
test
是一个字符串,您不会修改它。这只会给您
。如果您仔细查看console中的状态变量,它是一个“D”,因此它实际上发生了更改。这不是重点;OP希望返回整个XML,而不仅仅是一个节点。感谢您的评论,我最终是这样做的:/*转换为XML对象/doc=$.parseXML(测试)/修改内容/$(doc).查找('status').text('D')/返回到text*/str=(新的XMLSerializer()).serializeToString(doc);
<p id="someElement"></p>
<p id="anotherElement"></p>

var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>",
    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc ),
    $title = $xml.find( "title" );

/* append "RSS Title" to #someElement */
$( "#someElement" ).append( $title.text() );

/* change the title to "XML Title" */
$title.text( "XML Title" );

/* append "XML Title" to #anotherElement */
$( "#anotherElement" ).append( $title.text() );
$(xml).find("whatever").append("<however></however>");
// doesn't modify xml

$("<however></however>").appendTo($(xml).find("whatever"));
// does modify xml