5

我正在尝试使用 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>"

要更改状态字段的内容:

$(test).find("status").text("D")

然而,结果是 test 没有被修改并且仍然包含旧状态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);
4

3 回答 3

6

使用 jQuery.parseXML()

<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() );
于 2012-06-29T08:36:22.983 回答
0

你需要写这样的代码......

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);

为了让它工作......

于 2012-06-29T08:31:39.917 回答
0

嗯,这个答案有效......但并非总是如此。我正在使用捆绑在 Tidesdk 中的旧 webkit 版本,我遇到了一些奇怪的问题:

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

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

???:_)

于 2013-02-05T16:37:25.063 回答