日期:2014-05-18  浏览次数:20764 次

我有如下的xml文件,如何将含指定子节点的所有<Book >元素节点删除?
<?xml version="1.0" encoding="gb2312"?>
<BookShop>
  <Book>
  <title>C++语言从入门到精通</title>
  <author>张津阁</author>
  <price>28.3</price>
  </Book>
  <Book>
  <title>Visual Basic.NET入门帮助</title>
  <author>高手</author>
  <price>158.3</price>
  </Book>
  <Book>
  <title>Visual Basic.NET入门帮助</title>
  <author>高手</author>
  <price>158.3</price>
  </Book>
</BookShop>
如何将含“Visual Basic.NET入门帮助”的所有<Book >元素节点删除?


------解决方案--------------------
C# code

XmlNode root = (XmlNode)xmlDoc.DocumentElement;

foreach (XmlNode xn in root.SelectNodes("descendant::title/text()"))
{
   if (xn.Value.Trim().Equals("Visual Basic.NET入门帮助"))
   {
       XmlNode node = xn.ParentNode.ParentNode;
       if (node.Name.ToLower().Equals("book"))
       {
            node.ParentNode.RemoveChild(node);
       }
   }
}