3

XContainer でElementメソッドのようなものを使用する方法はありますが、新しい XElement を作成し、指定された名前の Element がコンテナーに存在しない場合にそれを返しますか?

4

3 に答える 3

6

自分で書いたほうがいいと思います。これは静的ヘルパー メソッドである必要があります。



    private static XElement GetOrCreateElement(XContainer container, string name) {
        var element = container.Element(name);
        if(element == null)
        {
           element = new XElement(name);
            container.Add(element);
        }
        return element;
    }

メンバー呼び出し構文を使用する場合は、XContainer の前に「this」を追加して拡張メソッドにします。この場合、メソッドは、「XContainerExtensions」と呼ばれるフィールドを持たない静的クラスにある必要があります。

于 2013-02-15T10:34:43.837 に答える
0

いいえ、その機能を自分で作成する必要があります。

var element = container.Element("name");
if(element == null)
{
    element = new XElement("name");
    container.Add(element);
}
于 2013-02-15T10:28:59.707 に答える
0

Linq-to-XML は XML-Data のクエリ言語であり、クエリ中に CRUD 操作を提供しないため、それは不可能だと思います。2 つのステップを使用する必要があります。

要素の最初のクエリ。i が存在しない場合は、新しい要素をコンテナーに追加する必要があります。

于 2013-02-15T10:29:53.827 に答える