2014-12-30 45 views
-1

我想根据匹配的属性和值在xml中删除1个元素。 这里我的XML文件:如何根据匹配的属性和值在xml中删除1个元素?

<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

这是C#?添加一个c#标签,然后 – Gabriel

+0

你的代码是否工作?你有错误吗? –

+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); 
} 
+0

谢谢@JLRishe,它的工作。 –

相关问题