.net 如何在给定的XML文件中找到最大的节点?
我是XML新手。这是我的XML文件内容:.net 如何在给定的XML文件中找到最大的节点?,.net,xml,.net,Xml,我是XML新手。这是我的XML文件内容: <Root> <COMPANIES> <id>1</id> <CompanyName>apple</CompanyName> <CompanyInCome>450</CompanyInCome> </COMPANIES> <COMPANIES> <id>2</id>
<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>
1.
苹果
450
2.
太太
458
3.
埃夫加
770
4.
女朋友
150
在这里,我想找到最大的公司收入节点,并显示在我的网页上。如何实现它?使用Linq to XML,您可以编写如下内容:
string input = "....(your XML here).....";
XDocument xmltest = XDocument.Parse(input);
var result = xmltest
.Descendants("COMPANIES")
.OrderByDescending(x => Convert.ToInt32(x.Element("CompanyInCome").Value))
.FirstOrDefault();
这将返回在
中数值最高的
节点
更新:如果要从外部文件读取XML,请使用以下代码行:
XDocument xmltest = XDocument.Load(@"E:\MyXML.xml");
.Parse()
方法用于解析代码中定义的现有XML字符串-它不从磁盘读取数据。同样使用XPath(例如,在.NET 2.0中工作):
收入
?可能应该是收入
。您是如何读取XML文件的?还有,你到底试过什么?你到底有什么问题?请发布您当前的代码并解释问题。最大值=公司收入的最高值??这就是您要找的吗?您可能应该将公司
重命名为公司
。和ROOT
进入公司
@user1104363:更新了我的响应-要从磁盘读取XML,需要使用.Load(filename)
而不是.Parse()
。。。。有关详细信息,请参阅!我现在收到了错误消息。XDocument xmltest=XDocument.Parse(输入);XmlEception未被用户代码处理是的,我使用System.Xml.Linq放置了;但是没有work@user1104363:使用XDocument.Load(字符串)
从文件加载数据。
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;