LINQ を使用して XML から複数のノードを選択する
質問
このような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());
両方のノードを取得するにはどうすればよいですか?
解決
var elements =
from element in xml.Root.Elements()
where element.Name == "content" ||
element.Name == "index"
select element;
var newContentNode = new XElement("content", elements);
他のヒント
XMLファイルがロードされたら、
は、あなたがすべてのコンテンツのノードを介して取得することができます:
var cons = from con in xmlFile.Descendants("content");
と同様にあなたは、インデックスノードとして取得することができます:
var idxs = from idx in xmlFile.Descendants("index")
私はあなたが1つのクエリ文字列を使用して2つのノードを照会することができないと思います。
ラムダを使用します:
var elements = document
.Descendants()
.Where(element => element.Name == "content" || element.Name == "index");
所属していません StackOverflow