#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
)