<?xml version="1.0" standalone="yes"?>
<NewDataSet xmlns="bagsinfo">
  <bags>
    <id>22</id>
    <numid>44        </numid>
    <s>6</s>
    <weight>44</weight>
    <size>44</size>
    <piece>44</piece>
    <vol>44</vol>
    <pro>44</pro>
    <maks> 医疗Y-44</maks>
    <mokN>25</mokN>
  </bags>
  <equinfo>
    <Sid>37</Sid>
    <Name>555</Name>
    <Type>555</Type>
    <Amount>555</Amount>
    <Unit>555</Unit>
    <Bagid>5</Bagid>
    <Intro>555</Intro>
    <maks>22</maks>
    <maksNo> 医疗Y-44</maksNo>
    <mokN>0</mokN>
  </equinfo>
  <equinfo>
    <Sid>38</Sid>
    <Name>33</Name>
    <Type>33</Type>
    <Amount>33</Amount>
    <Unit>33</Unit>
    <Bagid>1</Bagid>
    <Intro>33</Intro>
    <maks>22</maks>
    <maksNo> 医疗Y-44</maksNo>
    <mokN>0</mokN>
  </equinfo>
</NewDataSet>

解决方案 »

  1.   

    XMLHelper
      

  2.   

    因为你指定了xml节点的namespace,查找稍微复杂一点            var doc = new XmlDocument();
                doc.Load(@"c:\1.xml");
                var nsMgr = new XmlNamespaceManager(doc.NameTable);
                nsMgr.AddNamespace("bg", "bagsinfo");
                var node = doc.DocumentElement.SelectSingleNode("bg:equinfo[bg:Sid=37]", nsMgr);
                if (node != null)
                {
                    doc.DocumentElement.RemoveChild(node);
                }
                doc.Save(@"c:\2.xml");
      

  3.   


     XNamespace xn = "bagsinfo";
     XElement xmlPage = XElement.Load("路径");
     xmlPage.Descendants(xn + "Sid").Where(s => s.Value == "37").Remove();
    //是删除 sid节点,还是 连父节点 也删除
    //.Where(s => s.Value == "37").Select(s=>s.Parent).Remove()
     xmlPage.Save("路径");
      

  4.   

    删除整个含有Sid=37的 equinfo结点及子结点
      

  5.   

    XPath找到
    然后删除
    Save
      

  6.   

    带名称空间的   XML   的操作使用XmlNamespaceManager   
    System.Xml.XmlNamespaceManager   nsmanager   =   new   System.Xml.XmlNamespaceManager(doc.NameTable); 
    nsmanager.AddNamespace("",""); 
    System.Xml.XmlNode   node   =   doc.SelectSingleNode( "bg:equinfo[bg:Sid=37]",   nsmanager); 
      

  7.   


     public XmlDocument DeleteXmlNodeByInnerText(XmlDocument xmlDoc, string NodeName, string NodeValue)
            {
                XmlNodeList xn = objXmlDoc.GetElementsByTagName(NodeName);
                foreach (XmlNode cNode in xn)
                {
                    XmlElement xe = (XmlElement)cNode;
                    if (xe.InnerText == NodeValue)
                    {
                        xe.ParentNode.RemoveChild(cNode);
                        break;
                    }
                }
                return xmlDoc;
            }
      

  8.   

       XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(Server.MapPath("xmlSave\\mok-25.xml"));        XmlNodeList xn = xmlDoc.GetElementsByTagName("Sid");
            foreach (XmlNode cNode in xn)
            {
                XmlElement xe = (XmlElement)cNode;
                if (xe.InnerText == "37")
                {
                    xe.ParentNode.RemoveAll();
                    break;
                }
            }
            xmlDoc.Save(Server.MapPath("xmlSave\\mok-26.xml"));可以删除内容但是<equinfo></equinfo>删除不了
      

  9.   

    xe.ParentNode.RemoveAll();
    改成 (xe.ParentNode).ParentNode.RemoveAll();
      

  10.   

    用.net3.5的 方便点 XNamespace xn = "bagsinfo";
     XElement xmlPage = XElement.Load("../../xm1.xml"); xmlPage.Descendants(xn + "Sid").Where(s => s.Value == "37").Select(s=>s.Parent).Remove();
     xmlPage.Save("../../xm1.xml");