2013-11-27 81 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

相关问题