我搜索了很多地方,看过很多例子,但是我仍然无法在我想要的地方为我的XML添加节点。
这是我的问题:
我有一个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标签中。
在我能够做到这一点之后,我需要让用户继续增长新的xml文件,方法是添加更多模板节点并将它们堆叠在A标签之间。
我已经成功复制了xml模板节点并将其添加到新文件中,但是我无法添加新节点,也没有能够保持xml不断增长,每次我添加B节点到它之前订阅的节点。
如果有人知道如何帮助我,我将非常感激,因为今天是我使用XML的第一天
答案 0 :(得分:2)
我建议使用LINQ TO XML我认为它简单易行。 以下是如何使用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