C#を用いてコーディングをしているのですが、
以下のようなXMLから特定の要素が何番目に該当するのかを取得したいと考えています。
何かいい方法はありますでしょうか?
(for文でぐるぐる回して条件が一致する数をカウントするくらいしか思いつきません)
例えば以下のXMLから、Attr1=Value4の要素は、
Attr0=1の中の何番目の要素かを知りたいです。
<Element> <CElement Attr0="0" Attr1="Value1"> <CElement Attr0="0" Attr1="Value2"> <CElement Attr0="1" Attr1="Value3"> <CElement Attr0="1" Attr1="Value4"> </Element>
現在は以下のような関数を作って対応しています。
もっと綺麗に書く方法がありそうですが。
public int GetCount(XElement Elements,string valueTemp) { var elems = Elements.XPathSelectElements("//CElement[@Attr0!= '1']"); int count = 1; foreach (var element in elems) { if (element.Attribute("Attr1").Value == valueTemp) { break; } count++; } return count; }
VisualStudio2015を使用しています。
使用しているVisual Studioのバージョンを記入してください。また、GetCount関数の戻り値が書かれていない事や、Xelement型という不明な型が使われていますので正確なものを載せてください。
質問文を修正させて頂きました。XElementは次の型として使用しています。 https://msdn.microsoft.com/ja-jp/library/system.xml.linq.xelement(v=vs.110).aspx
回答1件
あなたの回答
tips
プレビュー