6

私は次のようなxmlファイルを持っています:

<starting>
   <start>
      <site>mushfiq.com</site>
      <site>mee.con</site>
      <site>ttttt.co</site>
      <site>jkjhkhjkh</site>
      <site>jhkhjkjhkhjkhjkjhkh</site>
     <site>dasdasdasdasdasdas</site>
 </start>
</starting>

今、私はすべてを削除する必要があり<site>...</site>、値はテキストボックスからランダムに与えられます。

これが私のコードです:

XDocument doc = XDocument.Load(@"AddedSites.xml");                
var deleteQuery = from r in doc.Descendants("start") where r.Element("site").Value == txt.Text.Trim() select r;
foreach (var qry in deleteQuery)
{
    qry.Element("site").Remove();
}
doc.Save(@"AddedSites.xml");

最初の要素の値をテキストボックスに入れると削除できますが、最初の要素の値以外の要素の値を入れると削除できませんでした。任意の要素の任意の値を入力する必要があります...2番目の要素または3番目または4番目などになります...誰かが私を助けてくれますか?

4

1 に答える 1

13

編集:さて、さらに編集すると、やりたいことがより明確になります。また、次のRemove拡張メソッドのおかげで、作成するよりもはるかに簡単になりIEnumerable<T> where T : XNodeます。

string target = txt.Text.Trim();
doc.Descendants("start")
   .Elements("site")
   .Where(x => x.Value == target)
   .Remove();

必要なのはそれだけです。

于 2012-11-20T22:43:25.970 に答える