2008年8月29日星期五

删除Xml中的某个节点

XmlNode root = xd.SelectSingleNode("NewDataSet");
int originalRowCount = root.ChildNodes.Count;
int deletedRowCount = 0;
XmlNodeList xnl = xd.SelectSingleNode("NewDataSet").ChildNodes;
for (int i = 0; i < xnl.Count; i++)
{
XmlElement xe = (XmlElement)xnl.Item(i);
using (GetXmlPath cltGetPath = new GetXmlPath())
{
if (!File.Exists(cltGetPath.GetPriceComponentFilePath(xe.ChildNodes.Item(5).InnerText, xe.ChildNodes.Item(7).InnerText, xe.ChildNodes.Item(6).InnerText, new Common().GetProductCategoryName(Int32.Parse(xe.ChildNodes.Item(2).InnerText)))))
{
root.RemoveChild(xe);
deletedRowCount++;
}
}
}

if (deletedRowCount > 0 && originalRowCount > 0)
{
foreach (XmlNode xn in xnl)
{
xn.ChildNodes.Item(1).InnerText = (originalRowCount - deletedRowCount).ToString();
}
}

没有评论: