查找和替换可以找到具有未知数字的字符串

时间:2013-08-22 09:57:27

标签: c# xml replace numbers

我有一个这样的txt文件,ID可以变化:

<Hmi.Screen.Property Name="FitToLargest" AggregationName="Properties" ID="67">          
   <AttributeList>
      <Value>false</Value>
   </AttributeList>
</Hmi.Screen.Property>

我在C#中编写了一个加载XML文件并可以查找和替换文本的程序。 这是我已经拥有的查找和替换代码:

private void btnFindReplace_Click(object sender, EventArgs e)
    {
        try
        {
            File.WriteAllText(tbLoad.Text, File.ReadAllText(tbLoad.Text).Replace(tbFind.Text, tbReplace.Text));

            messageSucces();
        }
        catch
        {
            MessageCancel();
        }
    }

如何在不查看ID的情况下查找此XML代码并进行替换,因为我需要删除的代码段在整个文件中出现多次,但每次都有不同的ID号。我需要删除它们。

1 个答案:

答案 0 :(得分:1)

假设您要从XML中删除的元素是具有属性/值Name="FitToLargest"仅限,那么您可以使用LINQ to XML查询按属性获取这些元素命名然后删除它们。

例如:

//this will be a path to your XML file or a string containing the XML
//I've used 'tbLoad.Text' as I don't know where you're getting the XML from
XDocument xml = XDocument.Load(tbLoad.Text);

xml.Descendants().Elements("Hmi.Screen.Property")
                 .Where(e => e.Attribute("Name").Value == "FitToLargest").Remove();
xml.Save("file path here...");

这将删除Hmi.Screen.PropertyFitToLargest属性的所有Name元素。