Member 13051967 Ответов: 2

Как получить значение из XML в поле со списком ?


<?xml version="1.0"?>
<RISK>
<RISKITEM NAME="A576125" DESC="" DESCID="" PKEY="" YN="" RANGE="1" DATE="20170415082628.176000"/>
<RISKITEM NAME="A562512" DESC="" DESCID="" PKEY="" YN="" RANGE="1" DATE="20170415082628.176000"/>
<RISKITEM NAME="A551154" DESC="" DESCID="" PKEY="" YN="" RANGE="1" DATE="20170415082628.176000"/>
<RISKITEM NAME="A515648" DESC="" DESCID="" PKEY="" YN="" RANGE="1" DATE="20170415082628.176000"/>
<RISKITEM NAME="A548715" DESC="" DESCID="" PKEY="" YN="" RANGE="1" DATE="20170415082628.176000"/>
</RISK>


Я пытаюсь ввести "имя" в поле со списком в VB.NET. Попробовал несколько примеров, но не получилось. Пожалуйста, помогите, спасибо.


Я погуглил и попробовал несколько примеров из интернета, но ничего не получилось. любой хеолп был бы в восторге.

Что я уже пробовал:

<pre>Dim RA_File As String = "C:\Risk.xml"
        cbxList.Items.Clear()
        Dim xmlDoc As New XmlDocument()
        xmlDoc.Load(RA_File)
        Dim nodes As XmlNodeList = xmlDoc.DocumentElement.SelectNodes("/RISK/RISKITEM")
        Try
            For Each node As XmlNode In nodes
                cbxList.Items.Add(node.SelectSingleNode("NAME").InnerText)
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

Member 13051967

Он говорит, что string является типом класса и не может использоваться в качестве выражения..

Я попробовал ниже ... но все равно безуспешно.. Я пытаюсь сделать это в VB.

Для каждого узла как XmlNode в узлах
- cbxList.Предметы.Добавить (узел.SelectSingleNode ("имя").Через свойство innerText)
cbxList.Предметы.Добавить (узел ("имя").Через свойство innerText)
Следующий

2 Ответов

Рейтинг:
6

Vinod Jangle

Попробуйте с приведенным ниже фрагментом кода это решит вашу проблему -


Dim RA_File As String = "E:\XMLFile1.xml"
ComboBox1.Items.Clear()
Dim xmlDoc As XDocument = XDocument.Load(RA_File)
Try
    For Each node As XElement In xmlDoc.Root.Descendants("RISKITEM")
        ComboBox1.Items.Add(node.Attribute("NAME").Value)
    Next
Catch ex As Exception
    MsgBox(ex.Message)
End Try


Member 13051967

Никакого эрроса, но и этот тоже не сработал.

[no name]

Это работает на меня. Вы заменили имя файла на свое в переменной RA_File?

Member 13051967

ой. Я переместил файл в подпапку. Он работает, мне очень жаль, большое вам спасибо...

Рейтинг:
0

Wessel Beulink

Должно быть:

For Each node As XmlNode In nodes
      Dim name = node["NAME"].InnerText
      cbxList.Items.Add(Name)
Next