我想根据匹配的属性和值删除xml中的1个元素。 这是我的XML文件:
<Setup>
<Include Type="Product">
<Value uomid="8078">468908</Value>
<Value uomid="8078">468922</Value>
</Include>
</Setup>
这是我的代码:
XmlNodeList nodesMultipleUoM_delete = node.SelectNodes("//Value[@uomid='" + multipleUOM + "']");
if (nodesMultipleUoM_delete != null && nodesMultipleUoM_delete.Count > 0)
{
for (int i = nodesMultipleUoM.Count - 1; i >= 0; i--)
{
if (nodesMultipleUoM_delete[i].Attributes["uomid"].Value == multipleUOM.ToString())
{
nodesMultipleUoM_delete[i].ParentNode.RemoveChild(node);
}
}
}
答案 0 :(得分:0)
您的代码中没有任何地方检查节点值是否具有您正在寻找的值。
试试这个:
List<XmlNode> toDelete = new List<XmlNode>();
foreach (XmlNode value in node.SelectNodes("//Value[@uomid]"))
{
if (value.Attributes["uomid"].Value == multipleUOM.ToString() &&
value.InnerText == valueToMatch.ToString())
{
toDelete.Add(value);
}
}
foreach (XmlNode value in toDelete)
{
value.ParentNode.RemoveChild(value);
}