2013-11-27 113 views
0

我想修改一個xmlString,所以我可以在飛行中創建一個數據集。修改XML,具有相同名稱的子節點

的XML看起來像這樣:

<?xml version="1.0"?> 
<ds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <ttActivity> 
    <a-actno>1030371</a-actno> 
    <a-status>Start</a-status> 
    <a-solution/> 
    <a-descript>hei</a-descript> 
    <a-descript>hopp</a-descript> 
    <a-acttypegr>0</a-acttypegr> 
    <a-calltype/> 
    </ttActivity> 
</ds> 

創建使用dataset.ReadXML(的XmlReader)一個數據集時,問題是與相同的名稱 「A-DESCRIPT」 的2個節點。有沒有一種快速的方法來解決這個XML,使節點獲得唯一的名稱。即:a-descript1和a-descript2?

回答

0

使用LINQ到XML

XDocument doc = XDocument.Parse(xmlString); 
doc.Descendants("a-descript").Last().Name = "a-descript2"; 
xmlString = doc.ToString(); 
+0

嗨。我們正在某處,但不是那裏。我在同一個XML中有許多表,並且這些表中的很多具有相同名稱的節點。 (來自db的字符串數組)。有些表可以有長度最多爲20的字符串數組,這可以提供一個具有多達20個具有相同名稱的節點的XML。我可以使用LINQ修復具有相同名稱的所有節點嗎? – Bigwill34

+0

我想我明白了:XDocument doc = XDocument.Parse(outputXML); int i = 1; foreach(doc.Descendants中的XElement元素(「so-info」)) element.Name = element.Name + i.ToString(); i ++; } – Bigwill34

相關問題