既に存在するかどうかに関係なく、要素の値/子を設定したいと考えています。要素が存在しない場合は、自動的に作成したいと考えています。
このように、私のコードは要素の内容についてのみ心配する必要があります...それが既に存在するかどうかではありません。(私がそれをやり終える頃には、存在することが保証されています)。
この機能は既に LINQ-to-XML に存在しますか? 私はまだそれを見つけていないので、独自の方法を書くことを検討しています。
既に存在するかどうかに関係なく、要素の値/子を設定したいと考えています。要素が存在しない場合は、自動的に作成したいと考えています。
このように、私のコードは要素の内容についてのみ心配する必要があります...それが既に存在するかどうかではありません。(私がそれをやり終える頃には、存在することが保証されています)。
この機能は既に LINQ-to-XML に存在しますか? 私はまだそれを見つけていないので、独自の方法を書くことを検討しています。
これが私がこれまでに持っているものです:
public static IEnumerable<XElement> ElementsOrCreate(this XElement parent, XName name)
{
IEnumerable<XElement> elements = parent.Elements(name);
if (!elements.Any())
{
XElement element = new XElement(name);
parent.Add(element);
elements = new XElement[] { element };
}
return elements;
}
(拡張機能の)最初の引数はXElementであり、System.Xml.Linq.Extensions.ElementsのようなXContainerではないことに注意してください。XElement以外のXContainerはXDocumentだけであり、このメソッドはXDocumentでは機能しません(あまり意味がありません)。