[英]C# How to insert XPathnavigator into XPathnavigator
假设我有以下 XML 文件
<root></root>
和以下文件
<child>
<more-childeren> </more-childeren>
</child>
如何将第二个文件插入第一个文件以创建以下文件:
<root>
<child>
<more-childeren> </more-childeren>
</child>
</root>
我正在接收作为 XPathNavigator 的第二个文件。 将 XPathNavigator 插入 XML 文件的最快方法是什么?
If you work with XPathNavigators over editable tree structures like XmlDocument/XmlNode
then use the AppendChild
method taking an XPathNavigator https://docs.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 框架为我工作的简单示例是
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();
似乎对于不得到您在评论中提到的异常至关重要。
尝试以下 xml linq:
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));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.