1

IDが異なる可能性があるこのようなtxtファイルがあります:

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

XML ファイルをロードし、テキストを検索して置換できるプログラムを C# で作成しました。これは、私がすでに持っている検索と置換のコードです:

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 に答える