Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据匹配的属性和值删除xml中的1个元素?_C#_Xml - Fatal编程技术网

C# 如何根据匹配的属性和值删除xml中的1个元素?

C# 如何根据匹配的属性和值删除xml中的1个元素?,c#,xml,C#,Xml,我想根据匹配的属性和值删除xml中的1个元素。 这里是我的XML文件: <Setup> <Include Type="Product"> <Value uomid="8078">468908</Value> <Value uomid="8078">468922</Value> </Include> </Setup> 在代码中没有任何地方检查节点值是否具有要查找的值 试试这个:

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

<Setup>
  <Include Type="Product">
    <Value uomid="8078">468908</Value>
    <Value uomid="8078">468922</Value>
  </Include>
</Setup>

在代码中没有任何地方检查节点值是否具有要查找的值

试试这个:

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);
}
List toDelete=new List();
foreach(node.SelectNodes中的XmlNode值(“//value[@uomid]”)
{
if(value.Attributes[“uomid”].value==multipleUOM.ToString()&&
value.InnerText==valueToMatch.ToString()
{
增加(价值);
}
}
foreach(toDelete中的XmlNode值)
{
value.ParentNode.RemoveChild(值);
}

这是c#吗?添加一个c#标记,那么您的代码工作吗?你们有错误吗?是的,它起作用了,但我得到了错误的结果。@TuấnTăng,错误的结果将是……?立即删除所有代码。所以,我只设置了2个参数:1是468908,即属性为uomid:8078的节点。这468908将被删除
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);
}