var usrconf = "<root><node>abc</node><node>efg</node></root>";
var xmlDoc = $.parseXML( usrconf );
$(xmlDoc).find('node').each(function(i) {
// change node values here
});
変更された XML を印刷するにはどうすればよいですか?
var usrconf = "<root><node>abc</node><node>efg</node></root>";
var xmlDoc = $.parseXML( usrconf );
$(xmlDoc).find('node').each(function(i) {
// change node values here
});
変更された XML を印刷するにはどうすればよいですか?
$(this) を使用すると、each() で選択されている要素にアクセスできます。i
ここで説明されている関数のインデックスです: http://api.jquery.com/each/
.each( function(index, Element) )
したがって、正しいコードは次のとおりです。
var usrconf = "<root><node>abc</node><node>efg</node></root>";
var xmlDoc = $.parseXML( usrconf );
$(xmlDoc).find('node').each(function(i) {
$(this).attr('changed', true);
});
console.log(xmlDoc);
または、シリアル化して戻したい場合
var usrconf = "<root><node>abc</node><node>efg</node></root>";
var xmlDoc = $.parseXML( usrconf );
$(xmlDoc).find('node').each(function(i) {
$(this).attr('changed', true);
});
console.log(xmlDoc);
// from http://stackoverflow.com/a/6507766/141200
function xmlToString(xmlData) {
var xmlString;
//IE
if (window.ActiveXObject){
xmlString = xmlData.xml;
}
// code for Mozilla, Firefox, Opera, etc.
else{
xmlString = (new XMLSerializer()).serializeToString(xmlData);
}
return xmlString;
}
console.log(xmlToString(xmlDoc));