2011-02-01 17 views
0

私は優先度で注文したい次のXMLを持っています。 XPathを使用してLINQが動作するかもしれないと思うけど、「少なくとも1つのオブジェクトがIComparableを実装する必要があります」というメッセージで引数の例外がスローされます。XMLDocument.SelectNodesの結果を注文する

何とか結果を注文できますか?

<Root> 
    <Item> 
    <Priority><![CDATA[4]]</Priority> 
    </Item> 
    <Item> 
    <Priority><![CDATA[1]]</Priority> 
    </Item> 
    <Item> 
    <Priority><![CDATA[3]]</Priority> 
    </Item> 
</Root> 

var result = doc.SelectNodes("//Item"); 
var ordered = ddddd.Cast<XmlNode>().OrderBy(x => x.SelectSingleNode("Priority")); //EXCEPTION!!! 
+0

なぜ優先度が意図的か...間違っているかどうかLoading_Priorityがあります。例外とは何ですか?スタックトレースを表示することができます –

+2

あなたが話している例外を魔法のように推測する必要がありますか? –

+0

私の質問が更新されました – Jon

答えて

0

変更x => x.SelectSingleNode("Priority")ああ

x => x.SelectSingleNode("Priority").InnerTextに、そしてあなたは、そのように文字列ではなく、int型を比較す​​ることを、覚えておいてください。

+0

ありがとうございました。ちょうどXMLにCDATAがあることがわかりましたので、私の質問が更新されました – Jon

+0

CDATAでも動作します – prostynick

+0

テスト済みです。ありがとう! – Jon

関連する問題