2014-10-08 29 views
0

替換XML節點的值,我需要尋找和使用JQuery在XML節點替換值的幫助,請建議,下面是我的方案,如何找到和JQuery的

var metaData ='<Control Type="Table" ID="4900a2a9-47d7-4d3b-9a35-fdd32b185730"></Control> 
     <Control Type="TextBox" ID="7a499af6-16c1-4fe8-9ea0-fe02e7eef886"></Control>'; 

在上面的XML結構我想在JQuery中搜索ID =「4900a2a9-47d7-4d3b-9a35-fdd32b185730」並將其替換爲ID =「91e3cbe6-8168-40be-bf26-ccdd6acb1e17」。請建議。

下面是我試過,

var oldID = "4900a2a9-47d7-4d3b-9a35-fdd32b185730"; 
var newID = "91e3cbe6-8168-40be-bf26-ccdd6acb1e17"; 
metaData.replace(oldID, newID); 

上面的代碼沒有成功。

回答

1

既然你有xml變量只是字符串,用JS .replace()

xml.replace('4900a2a9-47d7-4d3b-9a35-fdd32b185730', '91e3cbe6-8168-40be-bf26-ccdd6acb1e17'); 

var xml = '<Control Type="Table" ID="4900a2a9-47d7-4d3b-9a35-fdd32b185730"></Control><Control Type="TextBox" ID="7a499af6-16c1-4fe8-9ea0-fe02e7eef886"></Control>'; 
 

 
var result = xml.replace('4900a2a9-47d7-4d3b-9a35-fdd32b185730', '91e3cbe6-8168-40be-bf26-ccdd6acb1e17'); 
 
$("#from").text(xml); 
 
$("#result").text(result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<b>Before:</b><br/> 
 
<div id='from'></div><br/> 
 
<b>After:</b><br/> 
 
<div id='result'></div>

+0

我想你的建議,但沒有運氣。 – Abhinay 2014-10-08 13:14:41

+0

@Abhinay有什麼錯誤? – Justinas 2014-10-08 13:16:37

+0

沒有錯誤,也沒有取代。 – Abhinay 2014-10-08 13:18:32

0

我不會做一個字符串替換。

var xml = '<Control Type="Table" ID="4900a2a9-47d7-4d3b-9a35-fdd32b185730"></Control><Control Type="TextBox" ID="7a499af6-16c1-4fe8-9ea0-fe02e7eef886"></Control>'; 
 

 
var doc = $.parseXML('<root>' + xml + '</root>'); 
 
var $root = $(doc); 
 
$root.find('[ID="4900a2a9-47d7-4d3b-9a35-fdd32b185730"]').attr('ID', 'x'); 
 
var newxml = xmlToString(doc); 
 
$('#result').text(newxml.substring(6, newxml.length - 7)) 
 

 

 
//borrowed from http://stackoverflow.com/questions/6507293/convert-xml-to-string-with-jquery 
 
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; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="result"></div>