Для каждого узла в XML, работающего не так, как ожидалось

#xml #vb.net #foreach #nodes

#xml #vb.net #заранее #узлы #foreach

Вопрос:

Я хочу использовать функцию «Для каждого», чтобы просмотреть каждый существующий узел в моем XML-файле, используя vb.net . Это вроде как работает, но не так, как я хотел бы или ожидал.. по какой-то причине я не могу разобраться, все внутренние тексты узла объединены в одну длинную строку, которая отображается в окне one message. то, что я ожидал, было новым окном сообщения для каждого тега с его внутренним текстом.

XML-файл довольно простой (потому что я все еще тестировал его) и показан здесь ниже:

 <DATA>
<TOM>123</TOM>
<DICK>ABC</DICK>
<HARRY>Hello</HARRY>
</DATA>
  

Где я ожидаю три окна сообщений, одно с «123», второе с «ABC» и третье с «Hello». Мне предоставляется только одно окно сообщения с надписью «123ABCHello»…

Код, который я использую для отображения окна сообщения, выглядит следующим образом:

 Dim doc as new XmlDocument()
doc.load(C:test.xml)

Dim Nodelist as XmlNodeList = doc.SelectNodes("DATA")
For Each Node as XmlElement In Nodelist
msgbox(Node.InnerText)
Next
  

Комментарии:

1. Попробуйте doc.SelectNodes("DATA/*") вместо doc.SelectNodes("DATA") .

2. Ну, застрелите меня, это работает… что означает / *? Я, в частности, не программист, а просто любитель-самоучка

3. DATA/* просто выбирает все элементы, которые являются дочерними элементами элемента DATA . Затем ваш For Each цикл выбирает каждый элемент этой коллекции (и затем выводит каждое text() значение с InnerText )