属性に基づいて呼び出されたCreditCard
ノードを削除しようとしていますが、意図したとおりに機能していません。XDocument
doc
name
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());
これでエラーは発生しませんが、何も削除されません。