Не обрабатывать дочерние узлы (используя "SelectNodes")
Пример XML;
<root>
<cmdset>Set 1
<cmd>Command 1</cmd>
</cmdset>
<cmdset>Set 2
<cmd>Command 2</cmd>
</cmdset>
</root>
Я только хочу вытащить текст изнутри <cmdset>
теги. Пример кода;
Sub Main()
Dim doc As XmlDocument = New XmlDocument()
doc.Load("help.xml")
For Each Element As XmlElement In doc.SelectNodes("//cmdset")
Console.WriteLine(Element.InnerText)
Next
Console.Read()
End Sub
Токовый выход;
Set 1
Command 1
Set 2
Command 2
Желаемый результат;
Set 1
Set 2
Спасибо вам пожалуйста
1 ответ
Решение
Вам нужно будет выбрать только текстовое содержимое с помощью XPath text()
функция, например:
For Each textNode As XmlText In doc.SelectNodes("//cmdset/text()")
Console.WriteLine(textNode.InnerText)
Next
Обратите внимание, что я также изменил итератор из XmlElement
переменная к XmlText
переменная, так как текстовое содержимое в XML-документе рассматривается не как узлы элемента, а как текстовые узлы.