我有一个这样的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号。我需要删除它们。
答案 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.Property
个FitToLargest
属性的所有Name
元素。