0

我有以下 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" 的转换器的“购买”属性中的数字值。

不幸的是,我不能使用 linq to XML,否则这很容易(对我来说)。所以我想我被困在使用 xpath

我创建了一个 XPathNavigator,但无法获得获得我想要的值的语法

任何人,任何想法如何做到这一点?

4

2 回答 2

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*/) 

                }
于 2011-01-25T15:48:00.763 回答
1

如果你使用 XPathDocument 你可以做

foreach (XPathNavigator buy in new XPathDocument("input.xml").CreateNavigator().Select("converters/converter[@c1 = 'XXX' and @c2 = 'ZZZ']/@buy"))
{
  Console.WriteLine(buy.Value);
}
于 2011-01-25T15:55:05.073 回答