C#如何将XPathnavigator插入XPathnavigator
假设我有以下XML文件C#如何将XPathnavigator插入XPathnavigator,c#,xml,xslt,xml-parsing,C#,Xml,Xslt,Xml Parsing,假设我有以下XML文件 <root></root> 和下面的文件 <child> <more-childeren> </more-childeren> </child> 如何将第二个文件插入第一个文件以创建以下文件: <root> <child> <more-childeren> </more-childeren> </
<root></root>
和下面的文件
<child>
<more-childeren> </more-childeren>
</child>
如何将第二个文件插入第一个文件以创建以下文件:
<root>
<child>
<more-childeren> </more-childeren>
</child>
</root>
我作为XPathNavigator接收第二个文件。将XPathNavigator插入XML文件的最快方法是什么?如果您在可编辑的树结构(如
XmlDocument/XmlNode
上使用XPathNavigator,则使用AppendChild
方法获取XPathNavigator。这至少是最方便和API支持的方式,“最快”是您需要测试的不同标准
我使用.NET framework的一个简单示例是
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);
XmlDocument doc=新的XmlDocument();
doc.LoadXml(@“);
XPathNavigator nav=doc.DocumentElement.CreateNavigator();
XPathdoc2文件;
使用(XmlReader xr=XmlReader.Create)(新建StringReader(@)
")))
{
doc2=新的XPathDocument(xr);
}
XPathNavigator nav2=doc2.CreateNavigator();
nav2.MoveToFirstChild();
资产负债表(nav2);
单据保存(控制台输出);
调用
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));
string xml1=”“;
字符串xml2=“”;
XDocument doc1=XDocument.Parse(xml1);
XElement root=doc1.root;
root.Add(XElement.Parse(xml2));
使用appendChild方法时,由于导航器错误的当前位置,操作无效。即使在使用MoveToRoot()时也会出现此错误beforehand@Jiren,查看编辑中的示例是否有帮助。