我有以下xml片段
<converters c1="XXX" c2="ZZZ">
<converter c1="YYY" c2="ZZZ"
buy="0.99899070428571424" sell="0.99966215285714288" />
<converter c1="XXX" c2="YYY"
buy="1.5503238471428571" sell="1.550773867142857" />
<converter c1="XXX" c2="ZZZ"
buy="1.5487591119281807" sell="1.5502499426226253" />
</converters>
我正在尝试检索具有c1 =“XXX”和c2 =“ZZZ”的转换器的“buy”属性中的数字值。
我不能将linq用于XML unfortunatley,否则这很容易(对我来说)。所以我想我被困在使用xpath
我已经创建了一个XPathNavigator,但无法获取语法来获取我想要的值
任何人,不知道怎么做?
答案 0 :(得分:2)
XmlDocument doc = new XmlDocument();
doc.LoadXml("");
XmlNodeList list = doc.SelectNodes("converters/converter");
foreach (XmlNode element in list)
{
if (element.Attributes["c1"].Value == "XXX" /*other operations*/)
}
答案 1 :(得分:1)
如果您使用XPathDocument,则可以执行
foreach (XPathNavigator buy in new XPathDocument("input.xml").CreateNavigator().Select("converters/converter[@c1 = 'XXX' and @c2 = 'ZZZ']/@buy"))
{
Console.WriteLine(buy.Value);
}