c#中,如何在xml文件的指定位置插入节点?

比如如下的XML文件:
<Books>
<Book>
<Title>The first</Title>
<ISBN>111111</ISBN>
<Author>Mao</Author>
<Price>100</Price>
<Unit>$</Unit>
</Book>
<Book>
<Title>The Third</Title>
<ISBN>333333</ISBN>
<Author>Jiang</Author>
<Price>300</Price>
<Unit>$</Unit>
</Book>
</Books>

想在这两个节点中间插入一个ISBN=“222222”的新元素(根据ISBN号来排序的):
<Book>
<Title>The Second</Title>
<ISBN>222222</ISBN>
<Author>Deng</Author>
<Price>200</Price>
<Unit>$</Unit>
</Book>

执行完插入操作之后,XML文件变为:
<Books>
<Book>
<Title>The first</Title>
<ISBN>111111</ISBN>
<Author>Mao</Author>
<Price>100</Price>
<Unit>$</Unit>
</Book>
<Book>
<Title>The Second</Title>
<ISBN>222222</ISBN>
<Author>Deng</Author>
<Price>200</Price>
<Unit>$</Unit>
</Book>
<Book>
<Title>The Third</Title>
<ISBN>333333</ISBN>
<Author>Jiang</Author>
<Price>300</Price>
<Unit>$</Unit>
</Book>
</Books>

胡子哥哥
浏览 2647回答 2
2回答

慕田峪4524236

XmlDocument doc = new XmlDocument();doc.Load("test.xml");XmlNode rootNode = doc.SelectSingleNode("Books");XmlNodeList nodelist = doc.SelectNodes("Books/Book");XmlNode flagNode = null;foreach (XmlNode tempNode in nodelist) {if (int.Parse(tempNode.SelectSingleNode("ISBN").InnerText) < 222222){flagNode = tempNode;}}XmlNode nodeA = doc.CreateElement("Book");nodeA.InnerXml = "<Title>The Second</Title><ISBN>222222</ISBN><Author>Deng</Author><Price>200</Price><Unit>$</Unit>";if (flagNode != null) {rootNode.InsertAfter(nodeA,flagNode);}doc.Save("test.xml");这只是提供了一个简单的思路,其实你完全封装一个方法,传进来一个封装好的XmlNode,很方便的,其实就是一个简单的排序
打开App,查看更多内容
随时随地看视频慕课网APP