c# - C# 如何将 XPathnavigator 插入 XPathnavigator
问题描述
假设我有以下 XML 文件
<root></root>
和以下文件
<child>
<more-childeren> </more-childeren>
</child>
如何将第二个文件插入第一个文件以创建以下文件:
<root>
<child>
<more-childeren> </more-childeren>
</child>
</root>
我正在接收作为 XPathNavigator 的第二个文件。将 XPathNavigator 插入 XML 文件的最快方法是什么?
解决方案
如果您在可编辑的树结构上使用 XPathNavigator,XmlDocument/XmlNode
则使用采用AppendChild
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();
似乎对于不获得您在评论中提到的异常至关重要。
推荐阅读
- sql-server - MS SQL - 用于归档数据的分区表
- javascript - 如何从数组中返回一个元素
- facebook-graph-api - 为什么 Facebook API 会提示 App Review 并且不接受我管理的页面的标准权限?
- javascript - Python/Bokeh - 如何通过使用 Select、回调和 CustomJS/js_on_change 从 dict 中按列值过滤行来更改数据源
- python - 有没有办法在没有 UI 的浏览器中登录 django rest api?
- python - Django 语法错误
- c++ - 在 Mac 上编译基本 C++ 程序时出现“未定义符号”问题
- mysql - 查找浮点数
- python - 使用 Plotly 绘制动画 3D 曲面图
- .net-core - ActionFilterAttribute 类在 WebApi 启动时被多次实例化