4

私はそのようなXMLを持っています

<root>
    <content>
        ....
    </content>
    <index>
        ....
    </index>
    <keywords>
        ....
    </keywords>
</root>

しかし、ノードだけを選択する必要があります。

<content>
    ....
</content>
<index>
    ....
</index>

ノードを1つだけ選択する方法を見つけました。

XElement Content = new XElement("content", from el in xml.Elements() select el.Element("content").Elements());

両方のノードを取得するにはどうすればよいですか?

4

3 に答える 3

6
var elements = 
    from element in xml.Root.Elements()
    where element.Name == "content" ||
          element.Name == "index"
    select element;
var newContentNode = new XElement("content", elements);
于 2010-05-12T06:26:56.260 に答える
1

ラムダの使用:

    var elements = document
        .Descendants()
        .Where(element => element.Name == "content" || element.Name == "index");
于 2010-05-12T08:01:11.140 に答える
1

xml ファイルをロードしたら、次の方法ですべてのコンテンツ ノードを取得できます。

var cons = from con in xmlFile.Descendants("content");

同様に、次のようにインデックス ノードを取得できます。

var idxs = from idx in xmlFile.Descendants("index")

1 つのクエリ文字列を使用して 2 つのノードをクエリできるとは思いません。

于 2010-05-12T06:25:59.983 に答える