我一直在尝试读取XML文件并将其写入另一个XML。我已成功读取和写入数据,但由于嵌套子节点正在创建问题,因此缺少某些内容。但是,如果节点有一个子节点,我已经完成了对场景的读写。但要与#34;任意数量的孩子制作通用"正在创造问题。
XmlDocument doc = new XmlDocument();
doc.Load(@"\\File Server\source_FILE.xml");
string dest_path = @"\\File Server\dest_FILE" + rnd.Next() + ".xml";
XmlDocument doc2 = new XmlDocument();
XmlTextWriter xw = new XmlTextWriter(dest_path, null);
try
{
XmlNodeList elemList = doc.GetElementsByTagName(@"Article");
xw.WriteStartElement("Article", null);
for (int i = 0; i < elemList[0].ChildNodes.Count; i++)
{
var test = elemList[0].ChildNodes.Item(i).ChildNodes.Item(0).GetType();//.NextSibling;
if (test.Name == "XmlElement")
{
int t = 0;
xw.WriteStartElement(elemList[0].ChildNodes.Item(i).Name);
while (t < elemList[0].ChildNodes.Item(i).ChildNodes.Count)
{
xw.WriteElementString(elemList[0].ChildNodes.Item(i).ChildNodes.Item(t).Name, elemList[0].ChildNodes.Item(i).ChildNodes.Item(t).InnerText);
t++;
}
xw.WriteEndElement();
}
else
{
xw.WriteElementString(elemList[0].ChildNodes.Item(i).Name, elemList[0].ChildNodes.Item(i).InnerText);
}
}
xw.WriteEndElement();
xw.Close();
doc2.Save(xw);
我的XML文件就像
<Article>
<Headline>Text is here all</Headline>
<City>
<A>
<B></B>
</A>
</City>
<Date>15 November 2010</Date>
<Source>
<P>ABC</P>
</Source>
<Text>
<P>
</P>
</Text>
<Category>abc</Category>
<Subject>_</Subject>
<Keyword>_</Keyword>
<Country>_</Country>
</Article>
可能我必须创建递归函数,但我需要帮助
答案 0 :(得分:0)
使用Linq:
var mainDoc = XDocument.Load("File1.xml");
mainDoc.Root.Add(XDocument.Load("File2.xml").Root.Elements());
现在mainDoc将包含第二个文件的所有元素。