Разобрать структуру XML в .net 2 - PullRequest
0 голосов
/ 25 января 2011

У меня есть следующий фрагмент 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>

Я пытаюсь получить значение числа в атрибуте "buy" для конвертера с c1 = "XXX" и c2 = "ZZZ".

Я не могу использовать linq to XML, иначе это будет легко (для меня).Поэтому я думаю, что застрял с использованием xpath

Я создал XPathNavigator, но не могу получить синтаксис для получения значения, которое я хочу

Кто-нибудь, есть идеи, как это сделать?*

Ответы [ 2 ]

2 голосов
/ 25 января 2011
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 голос
/ 25 января 2011

Если вы используете XPathDocument, вы можете сделать

foreach (XPathNavigator buy in new XPathDocument("input.xml").CreateNavigator().Select("converters/converter[@c1 = 'XXX' and @c2 = 'ZZZ']/@buy"))
{
  Console.WriteLine(buy.Value);
}
...