2011-01-25 3 views
0

У меня есть следующий фрагмент XMLАнализировать структуру XML в .net 2

<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 для XML unfortunatley, или это было бы легко (для меня). Таким образом, я предполагаю, что я застрял с помощью XPath

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

Любой, идеи, как это сделать?

ответ

1

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

foreach (XPathNavigator buy in new XPathDocument("input.xml").CreateNavigator().Select("converters/converter[@c1 = 'XXX' and @c2 = 'ZZZ']/@buy")) 
{ 
    Console.WriteLine(buy.Value); 
} 
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*/) 

       }