Javascript 如何使用JQuery修改XML
我正在尝试使用Javascript修改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
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