[英]Parsing data from a child element in an xml document
我在解析xml文档中的sub元素时遇到困难。
该文档包含一系列包含定价信息的元素,我需要从这些信息中提取欧元价格。 无论我做什么,似乎都无法提取所需的数据。 结果始终为空。
<departure>
<pricing xmlns="http://website.com/api/feeds/xmlns/20110926/">
<price age_group="Adult" label="1 Adult" max_age="100" max_passengers="100" min_age="12" min_passengers="1">
<USD>4249.00</USD>
<AUD>4299.00</AUD>
<CHF>3649.00</CHF>
<GBP>2749.00</GBP>
<NZD>5399.00</NZD>
<CAD>4399.00</CAD>
<EUR>3249.00</EUR> <------------this is what I need to parse
</price>
</pricing>
<pricing xmlns="http://website.com/api/feeds/xmlns/20110926/">
<price age_group="Adult" label="1 Adult" max_age="100" max_passengers="100" min_age="12" min_passengers="1">
<USD>4249.00</USD>
<AUD>4299.00</AUD>
<CHF>3649.00</CHF>
<GBP>2749.00</GBP>
<NZD>5399.00</NZD>
<CAD>4399.00</CAD>
<EUR>3249.00</EUR> <------------this is what I need to parse
</price>
</pricing>
<departure>
XmlNodeList departureNodes = xmlDoc.GetElementsByTagName("departure");
if (departureNodes.Count > 0)
{
foreach (XmlElement element in departureNodes)
{
string priceInEUR = xmlElement.SelectSingleNode("pricing/price/EUR"); // returns null
string priceInEUR2 = xmlElement.SelectSingleNode("//pricing/price/EUR"); // also returns null
}
}
我建议使用XDocument和Linq到XML。
using System.Xml.Linq;
IEnumerable<XElement> prices = from t in doc.Root.Descendants("EUR");
foreach (XElement t in prices)
{
string priceInEUR = t.Value;
}
我在此处拥有此文档的方式: http : //searisen.com/xmllib/extensions.wiki
您当前可以执行以下操作:(假定离开是根节点的子节点)
decimal[] euros = XElement.Load(xmlFile)
.GetEnumerable("departure/pricing",
x => x.Get("price/EUR", decimal.MinValue))
.ToArray();
这将获得所有欧元,即您列出的两欧元。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.