2014-12-30 43 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,它的工作。 –

相關問題