1

我有一个这样的 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();
        }
    }

我可以做些什么来查找此 XML 代码并在不查看 ID 的情况下进行替换,因为我需要删除的代码段在整个文件中多次出现,但每次都有不同的 ID 号。我需要将它们全部删除。

4

1 回答 1

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.Property元素。FitToLargestName

于 2013-08-22T10:21:30.833 回答