在 C# 中包含 XML 文件

本文关键字:XML 文件 包含 | 更新日期: 2023-09-27 18:35:05

这是我的问题,我有两个XML文件,我想在父亲文件中包含子文件,如下所示

爸爸

<?xml version="1.0" encoding="UTF-8"?>
<topolino.doc name="topolino.doc" type="doc" path="C:'Users'" filename="topolino.doc">
    <child.xml type="xml" name="child.xml" path="C:'" filename="child.xml" />
</topolino.doc>

孩子

<?xml version="1.0" encoding="UTF-8"?>
<adeel.doc name="adeel.doc" type="doc" path="C:" filename="adeel.doc">
  <pippo.doc type="doc" name="pippo.doc" path="C:" filename="pippo.doc" />
</adeel.doc>

结果

<?xml version="1.0" encoding="UTF-8"?>
<topolino.doc name="topolino.doc" type="doc" path="C:'Users'" filename="topolino.doc">
   <adeel.doc name="adeel.doc" type="doc" path="C:" filename="adeel.doc">
   <pippo.doc type="doc" name="pippo.doc" path="C:" filename="pippo.doc" />
</adeel.doc>
</topolino.doc>

最好的方法是什么?

提前感谢安迪

在 C# 中包含 XML 文件

string strParent=@"<?xml version=""1.0"" encoding=""UTF-8""?> 
                            <topolino.doc name=""topolino.doc"" type=""doc"" path=""C:'Users'"" filename=""topolino.doc""> '
                                <child.xml type=""xml"" name=""child.xml"" path=""C:'"" filename=""child.xml"" />
                            </topolino.doc>";
        string strChild = @"<?xml version=""1.0"" encoding=""UTF-8""?>
                        <adeel.doc name=""adeel.doc"" type=""doc"" path=""C:"" filename=""adeel.doc"">
                          <pippo.doc type=""doc"" name=""pippo.doc"" path=""C:"" filename=""pippo.doc"" />
                        </adeel.doc>";
        XmlDocument docParent = new XmlDocument();
        docParent.LoadXml(strParent);
        XmlDocument docChild = new XmlDocument();
        docChild.LoadXml(strChild);
        //docParent.AppendChild(docChild.ChildNodes.Item(0));
        var n = docParent.ImportNode(docChild.SelectSingleNode("adeel.doc"), false);
        var n1 = docParent.ImportNode(docChild.ChildNodes[1].SelectSingleNode("pippo.doc"), true);
        docParent.DocumentElement.AppendChild(n);
        docParent.DocumentElement.AppendChild(n1);