如何使用节点ID解析XML文件。我想转到<Rate>0.8988</Rate>
<rate id="USDEUR">
节点
<results>
<rate id="USDEUR">
<Name>USD/EUR</Name>
<Rate>0.8988</Rate>
<Date>5/27/2016</Date>
<Time>6:56pm</Time>
<Ask>0.8989</Ask>
<Bid>0.8988</Bid>
</rate>
<rate id="USDJPY">
<Name>USD/JPY</Name>
<Rate>110.1250</Rate>
<Date>5/27/2016</Date>
<Time>6:53pm</Time>
<Ask>110.1500</Ask>
<Bid>110.1250</Bid>
</rate>
</results>
这是我迄今为止所能做的。
string sitemapurl = @"http://example.com/xmlforexrates";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(sitemapurl);
XmlNodeList nodeIds = xmlDoc.SelectNodes("/results/rate");
现在它获得了NodeList中的所有<rate>
个节点。我只想基于Id获取节点,例如<rate id="USDEUR">
请帮我这样做。感谢
答案 0 :(得分:0)
使用XPath,您可以这样做:
XmlNodeList nodeIds = xmlDoc.SelectNodes("/results/rate[@id='USDEUR']/Rate/text()");
答案 1 :(得分:0)
使用LINQ to XML非常简单。
var doc = XDocument.Load("http://example.com/xmlforexrates");
var rate = (decimal)doc
.Descendants("rate")
.Where(x => (string) x.Attribute("id") == "USDEUR")
.Elements("Rate")
.Single();
有关正常工作的演示,请参阅this fiddle。