首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#如何将XPathnavigator插入到XPathnavigator中

C#如何将XPathnavigator插入到XPathnavigator中
EN

Stack Overflow用户
提问于 2020-12-07 11:12:25
回答 2查看 142关注 0票数 0

假设我有以下XML文件

代码语言:javascript
复制
<root></root>

和下面的文件

代码语言:javascript
复制
<child>
    <more-childeren> </more-childeren>
</child>

如何将第二个文件插入到第一个文件中以创建以下文件:

代码语言:javascript
复制
<root>
    <child>
        <more-childeren> </more-childeren>
    </child>
</root>

我正在以XPathNavigator的形式接收第二个文件。将XPathNavigator插入到XML文件中最快的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-07 11:20:14

如果在可编辑树结构(如XPathNavigators )(如XmlDocument/XmlNode )上使用AppendChild,则使用AppendChild方法获取XPathNavigator https://learn.microsoft.com/en-us/dotnet/api/system.xml.xpath.xpathnavigator.appendchild?view=net-5.0#System_Xml_XPath_XPathNavigator_AppendChild_System_Xml_XPath_XPathNavigator_。这至少是最方便和API支持的方式,“最快的”是一个不同的标准,你需要测试。

一个为我使用.NET框架的简单示例是

代码语言:javascript
复制
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(@"<root></root>");

            XPathNavigator nav = doc.DocumentElement.CreateNavigator();

            XPathDocument doc2;
            using (XmlReader xr = XmlReader.Create(new StringReader(@"<child>
    <more-childeren> </more-childeren>
</child>")))
            {
                doc2 = new XPathDocument(xr);
            }


            XPathNavigator nav2 = doc2.CreateNavigator();
            nav2.MoveToFirstChild();

            nav.AppendChild(nav2);

            doc.Save(Console.Out);

调用nav2.MoveToFirstChild();对于避免您在评论中提到的异常是至关重要的。

票数 1
EN

Stack Overflow用户

发布于 2020-12-07 11:27:41

尝试以下xml:

代码语言:javascript
复制
           string xml1 = "<root></root>";
            string xml2 = "<child><more-childeren> </more-childeren></child>";

            XDocument doc1 = XDocument.Parse(xml1);

            XElement root = doc1.Root;
            root.Add(XElement.Parse(xml2));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65180667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档