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

ただし、結果として、テストは変更されず、古いステータスが含まれます。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 に答える