2011-12-18 19 views
1

私はXMLを持つ新しい人です。これは私のXMLファイルの内容である:ここで私は最大のCompanyInComeノードを見つけるために、私のWebページに表示したい与えられたXMLファイルで最大のノードを見つけるには?

<Root> 
    <COMPANIES> 
    <id>1</id> 
    <CompanyName>apple</CompanyName> 
    <CompanyInCome>450</CompanyInCome> 
    </COMPANIES> 
    <COMPANIES> 
    <id>2</id> 
    <CompanyName>MS</CompanyName> 
    <CompanyInCome>458</CompanyInCome> 
    </COMPANIES> 
    <COMPANIES> 
    <id>3</id> 
    <CompanyName>Evga</CompanyName> 
    <CompanyInCome>770</CompanyInCome> 
    </COMPANIES> 
    <COMPANIES> 
    <id>4</id> 
    <CompanyName>GF</CompanyName> 
    <CompanyInCome>150</CompanyInCome> 
    </COMPANIES> 
</Root> 

。どうすれば作れますか? <CompanyInCome>で最高の数値を持っている<COMPANIES>ノードを返します

string input = "....(your XML here)....."; 

XDocument xmltest = XDocument.Parse(input); 

var result = xmltest 
       .Descendants("COMPANIES") 
       .OrderByDescending(x => Convert.ToInt32(x.Element("CompanyInCome").Value)) 
       .FirstOrDefault(); 

この:LINQのは-に-XML、あなたのような何かを書くことができます使用

+2

'InCome'か?おそらく、「収入」でなければなりません。どのようにXMLファイルを読んでいますか?また、あなたは何を試してみましたか?何が問題になっていますか?あなたの現在のコードを投稿し、問題を説明してください。 – Oded

+1

Biggest = 'CompanyIncome'の最高値??それはあなたが探しているものですか? –

+1

'COMPANIES'の名前を' Company'に変更するべきでしょう。そして 'ROOT'を' Companies 'にする。 – abatishchev

答えて

3

更新:あなたは、外部ファイルからXMLを読み取るコード行を使用する場合:

XDocument xmltest = XDocument.Load(@"E:\MyXML.xml"); 

.Parse()方法は、あなたのコード内で定義されたXMLの既存の文字列を解析するために使用されます - ディスクから読み取ったNOTを読み取ります。

+0

エラーメッセージが表示されます。 XDocument xmltest = XDocument.Parse(入力); XmlEceptionはユーザーコードで処理されていません はい私はSystem.Xml.Linqを使用しています。しかし、仕事をしなかった – user1104363

+0

ok。私は私の質問を更新します。 – user1104363

+1

@ user1104363: 'XDocument.Load(string)'を使ってファイルからデータを読み込みます。 – abatishchev

0

同じものを使用するXPath(したがって、例えば、.NET 2.0で動作):

XmlDocument doc = new XmlDocument(); 
doc.Load(path); 

XPathNavigator nav = doc.CreateNavigator(); 
XPathExpression sort = nav.Compile("Root/COMPANIES"); 
sort.AddSort("id", XmlSortOrder.Descending, XmlCaseOrder.None, "", XmlDataType.Number); 

string max = nav.SelectSingleNode(sort).SelectSingleNode("id").Value; 
関連する問題