Я пытаюсь извлечь определенные значения из XML-документа. В приведенном ниже примере я хочу сохранить значения, хранящиеся в узлах «c» и «d» в списке, но только там, где узел «b» содержит как «c», так и «d». Код, который я до сих пор прокручивает все узлы «b», но я не уверен, что положить в цикл while, или если это лучший подход.Как извлечь дочерние узлы из XML-файла с помощью XPath, когда должны существовать оба дочерних узла?
XmlDocument attrsXML = new XmlDocument();
attrsXML.LoadXml(dbReader["SampleXml"].ToString());
XPathNavigator nav = attrsXML.CreateNavigator();
XPathNodeIterator attribNodes = nav.Select("https://stackoverflow.com/a/b");
while (attribNodes.MoveNext())
{
// What do I need to put here in order to extract the 'c' and 'd' nodes?
// Any other nodes can be ignored (such as 'e' above). I am only interested
// when 'b' contains both 'c' AND 'd'.
}
Где SampleXml "загружается из базы данных:
<a>
<b>
<c>Extract this</c>
<d>And this</d>
<e>not this</e>
</b>
<b>
<c>not this</c>
<e>not this</e>
</b>
<b>
<c>Extract this</c>
<d>And this</d>
</b>
</a>
Любая помощь приветствуется.
Спасибо eminsenay - я перешел на использование вашего решения. Очень приятно, чем мое! – psych