2011-02-01 5 views
0

우선 순위로 주문하려는 다음 XML이 있습니다. XPath를 사용하여 멋지게 생각하지 마라 LINQ가 작동 할 수 있다고 생각했지만 "적어도 하나의 객체가 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

이유는 우선 순위가 의도적으로 ... 또는 실수로 ... 그리고 예외가 무엇입니까? 스택 추적을 표시 할 수 있습니다. –

+2

당신이 말하는 예외를 마술처럼 추측해야합니까? –

+0

내 질문 업데이트했습니다 – Jon

답변

0

변경 x => x.SelectSingleNode("Priority")x => x.SelectSingleNode("Priority").InnerText

아, 그리고 당신이 문자열,하지의 int, 그런 식으로 비교하는 것을 기억하십시오.

+0

고마워요 고마워요. XML에 CDATA가 있음을 발견했습니다. 내 질문이 – Jon

+0

으로 업데이트되었습니다. CDATA로도 작동합니다. – prostynick

+0

테스트를 마쳤습니다. 감사! – Jon