c# - 将所有 xml 属性从一个节点复制到另一个节点

标签 c# xml

您好,我有 2 个 xml 节点,我只需要将所有属性从第一个复制到另一个 `

 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>

最佳答案

输入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 StackOverflow
{
    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())));
        }
    }
}

关于c# - 将所有 xml 属性从一个节点复制到另一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43610202/

相关文章:

java - 在Java中解析xml时是否可以忽略/跳过节点

php - 通知: Undefined index of a xml

c# - 调试/检查 XML 序列化的工具

c# - 是否可以创建通用的按位枚举 'IsOptionSet()' 方法?

Windows 8 中的 XML 序列化

C# 公共(public)库

c# - 无法在列表中创建文件夹

xml - 不使用默认命名空间的没有前缀的 XSL 输出 XML?

c# - 二维对象数组返回类型 - NSubstitute

c# - 易趣 API : How do I specify "Standard Shipping (FedEx Ground or FedEx Home Delivery®)" as a shipping service?