C# 删除xml节点不彻底???急急急!!!有分啊!!!
来源:百度知道 编辑:UC知道 时间:2024/09/27 19:17:06
<NewDataSet>
- <ROW>
<CodeID>10000000</CodeID>
<FilterCitem />
<FilterSqlStr>ITEM_TYPE_FIELD=001;PRI_ITEMID_FIELD=1;</FilterSqlStr>
</ROW>
<NewDataSet>
程序如下:
private void DelRecordFromXml(string strCodeID)
{
string xmlPath = Server.MapPath("") + @"\model\DailyReport.xml";
xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
System.Xml.XmlNodeList xmlNL = xmlDoc.SelectSingleNode("NewDataSet").ChildNodes;
foreach(System.Xml.XmlNode xmlN in xmlNL)
{
System.Xml.XmlNodeList xmlSubNL = xmlN.ChildNodes;
foreach(System.Xml.XmlNode xmlSubN in xmlSubNL)
{
XmlElement xmlSubEle = (XmlElement)xmlSubN;
if ( xmlSubEle.Name=="CodeID" && xmlSubN.InnerText == strCodeID)
{
xmlN.RemoveAll();
xmlDoc.Save(xmlPa
删除节点跟你 xmlN 的方式一样就可以删除,
也就是 说,
要删除 XML 节点,你得通过 该节点的父节点 来删除.
也就是 你要 select 到 <NewDataSet> 这个节点
再用 这个节点 来 删除 <Row> 即可.
下面的代码,测试了一下,
我这边可以. 函数多了一个参数 指定 文件名.
public void DelRecordFromXml(string strCodeID, string xmlfile)
{
string xmlPath = xmlfile;
xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
System.Xml.XmlNodeList xmlNL = xmlDoc.SelectNodes("NewDataSet/ROW");
foreach (System.Xml.XmlNode xmlN in xmlNL)
{
XmlElement xe = (XmlElement)xmlN.SelectSingleNode("CodeID");
if (xe != null && xe.InnerText.Equals(strCodeID))
xmlN.ParentNode.RemoveChild(xmlN);
}
xmlDoc.Save(xmlPath);
}
你是用DATASET的吗,如果是的话好像不能删
- <ROW> 加一个-干什么?