拷贝所有XML从1个节点属性到另一个

问题描述:

喜我有2个XML节点与我只需要所有从第一属性复制到其他 '拷贝所有XML从1个节点属性到另一个

XmlDocument doc = new XmlDocument(); 
XmlDocument doc1 = new XmlDocument(); 
doc.Load(somepath); 
XmlNode node=doc.CreateNode(System.Xml.XmlNodeType.Element, "something", null); 
System.Xml.XmlNodeList list = doc.GetElementsByTagName("tananana"); 
XmlNode node1= list[0]; 
Foreach (XmlAttribute att in node1.Attributes) 
{ 
    System.Xml.XmlAttribute rAtt= doc.CreateAttribute(att.name); //att.name is problem 
    rAtt.Value=att.Value; //att.value is problem 
    node1.Attributes.Add(rAtt); 
} 

输入的test.xml:

<data> 
    <tananana a1="1" a2="2"/> 
    <tananana a3="3" a4="5"/> 
    <tananana a1="5" a2="7"/> 
</data> 

输出:

<data> 
    <something a1="1" a2="2" /> 
    <something a3="3" a4="5" /> 
    <something a1="5" a2="7" /> 
</data> 
+0

什么确切的问题?是att null?名称为null? – WhileTrueSleep

+0

您的代码没有意义,因为'doc1'未被使用。 – Szer

+0

我已经把问题的地方的评论 – Sonja

输入的test.xml:

<data> 
    <tananana a1="1" a2="2"/> 
    <tananana a3="3" a4="5"/> 
    <tananana a1="5" a2="7"/> 
</data> 

输出:

<data> 
    <something a1="1" a2="2" /> 
    <something a3="3" a4="5" /> 
    <something a1="5" a2="7" /> 
</data> 

代码:

namespace * 
{ 
    using System.IO; 
    using System.Linq; 
    using System.Xml.Linq; 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      var doc1 = XDocument.Load("test.xml"); 
      var doc2 = new XDocument(new XElement(doc1.Root.Name)); 

      doc2.Root.Add(doc1.Root 
       .Elements("tananana") 
       .Select(x => new XElement("something", x.Attributes()))); 
     } 
    } 
} 
+0

没有点是完全错误的。下面我将添加它,因为格式化 – Sonja

+0

输入的test.xml的: 输出: Sonja

+0

@Sonja编辑答案 – Szer