Xdocumentオブジェクトから子要素のリストを取得するにはどうすればよいですか?
-
23-09-2019 - |
質問
このように見えるXMLファイルから、すべての「ビデオ」要素とその属性を取得しようとしています。
<?xml version="1.0" encoding="utf-8" ?>
<videos>
<video title="video1" path="videos\video1.wma"/>
<video title="video2" path="videos\video2.wma"/>
<video title="video3" path="videos\video3.wma"/>
</videos>
以下は、ルートノードとすべての子供のみを選択します。すべての「ビデオ」要素をIENUMERABLEに入れたいと思います。誰かが私が間違っていることを教えてもらえますか?
IEnumerable<XElement> elements = from xml in _xdoc.Descendants("videos")
select xml;
上記は、長さ== 1のコレクションを返します。ルート要素とすべての子供が含まれています。
解決
子孫(「ビデオ」)を選択します。 「ビデオ」はあなたのルートエントリであるように見え、そのうち1つの要素があります。ビデオの内側の要素は、あなたがクエリしたいものです。
例:
var query = from video in document.Descendants("video")
select new
{
Title = video.Attribute("title").Value,
Path = video.Attribute("path").Value
};
これにより、2つの文字列プロパティを備えた匿名タイプのienumerableが提供されます。それ以外の場合は、単に「ビデオ」を選択して、 IEnumerable<XElement>
, 、必要に応じてさらに解析します。
所属していません StackOverflow