属性に基づいて呼び出されたCreditCardノードを削除しようとしていますが、意図したとおりに機能していません。XDocumentdocname
doc私XDocumentであり、次のようになります。
XDocument doc = new XDocument(
new XComment("XML test file"),
new XElement("CreditCards",
new XElement("CreditCard",
new XAttribute("Name", "TestCard1"),
new XAttribute("phoneNumber", 121212142121)),
new XElement("CreditCard",
new XAttribute("Name", "TestCard2"),
new XAttribute("phoneNumber", 6541465561)),
new XElement("CreditCard",
new XAttribute("Name", "TestCard3"),
new XAttribute("phoneNumber", 445588))
)
);
これは私が実行しようとしているクエリですが、ノードは削除されません。name何を削除するかを指示するための参照としてこの関数に渡す文字列です
var q = from node in doc.Descendants("CreditCards")
let attr = node.Attribute("name")
where attr != null && attr.Value == name
select node;
q.ToList().ForEach(x => x.Remove());
これでエラーは発生しませんが、何も削除されません。