2012-03-08 110 views
3

我搜索了很多地方并看到了很多示例,但我仍无法将节点添加到我想要的地方的XML中。将Xml元素复制到C#中的另一个文档中#

这里是我的问题

我有一个XML文件,该文件会被我的程序读取,使用它作为我的新的XML文件的模板的目的。但正如我所说,我创建的“XML模板”只有最通用的定义,这意味着我需要读取该模板的一个特定节点,将其添加到新的XML中,创建新的节点,它们为新的XML文件

模板XML:

<A> 
    <B> 
    <c>element 1</c> 
    <d>element 2</d> 
    <e>element 3</e> 
    </B> 
    <B> 
    <c>element 4</c> 
    <d>element 5</d> 
    <e>element 6</e> 
    </B> 
</A> 

这里是新的文件,我需要创建:

<A> 
    <B> 
    <c>element 7</c> 
    <d>element 8</d> 
    <e>element 9</e> 
    <f>element 10</f> 
    <g>element 11</g> 
    </B> 
<B> 
    <c>element 12</c> 
    <d>element 13</d> 
    <e>element 14</e> 
    <f>element 15</f> 
    <g>element 16</g> 
    </B> 
</A> 

正如你可以看到下面

结构
<A> 
    <B> 
    <c>element 7</c> 
    <d>element 8</d> 
    <e>element 9</e> 
    </B> 
</A> 

我需要从我的模板xml复制到我的新xml文件(选择哪个节点取决于用户),但该特定节点将被复制到新的xml,然后我需要添加一些节点我已经复制到新文件以使其更加完整的节点。我需要将它们添加到B标签。

我已经能够做到这一点,我将需要让用户通过添加更多的模板节点并将它们堆叠在A标签之间来不断增长新的XML文件。

我已经成功地复制了xml模板节点并将其添加到新文件中,但我无法添加新节点,也没有能够保持xml不断增长,每当我做广告时B节点到它订阅之前的A节点。

如果有人知道如何帮助我,我会非常感激,因为今天是使用XML

+0

目前还不清楚我到底在问什么。你能告诉我们你的代码的相关部分,并描述你到底想要做什么以及它究竟做了什么? – svick 2012-03-08 02:15:35

回答

2

我建议使用LINQ到XML我觉得它简单,容易实现我的第一天。 这里是exampple如何与LINQ读取XML

XDocument xmlDoc = XDocument.Load(Server.MapPath("XMLFile.xml")); 

    var persons = (from elements in xmlDoc.Descendants("A") 
    where elements.Element("c").Value==//VALUE YOU LOOKING TO GET 
    select new 
    { 
    c = elements.Element("c").Value, 
    d = elements.Element("d").Value, 
    e = elements.Element("e").Value, 
    }).FirstOrDefault(); 
    /// ADD ELEMENT TO ANOTHER XML 

的XDocument xmlDoc中= XDocument.Load(使用Server.Mappath( “AnotherXMLFile.xml”));

xmlDoc.Element("A").Add(new XElement("B", new XElement("e", persons.e))); 

,这里是一个很好的教程

http://www.aspnettutorials.com/tutorials/xml/linq-to-xml-adding-cs.aspx

相关问题