Получить значения XML в комбинированный список - PullRequest
0 голосов
/ 14 октября 2019

Обычно я пытаюсь прочитать XML-файл и вставить данные в комбинированный список, но либо он получает только первое значение, либо все три значения помещает в одну строку.

Код:

foreach (var NomeProcesso in doc.Descendants("Processo")){
            comboBoxProcessos.Items.Add(NomeProcesso.Element("NomeProcesso").Value);}

Я ожидал, что выпадающий список даст мне все 3 процесса в разных строках

Но в итоге я получил только один процесс1

или

process1process2process3(Это происходит, если я изменю код на «Arquitetura» вместо «Processo» и «Processo» вместо «NomeProcesso»)

XML:

<!-- language: lang-xml -->
<Arquitetura>
  <NomeArquitetura>Teste</NomeArquitetura>
  <VersaoArquitetura>1</VersaoArquitetura>
  <Ator />
  <Atividade />
  <Processo>
    <NomeProcesso>process1</NomeProcesso>
    <NomeProcesso>process2</NomeProcesso>
    <NomeProcesso>process3</NomeProcesso>
  </Processo>
  <Operacao />
  <Fase />
  <Software />
  <Informacao />
  <Ato />
</Arquitetura>

Ответы [ 3 ]

0 голосов
/ 14 октября 2019

Если вы используете XmlDocument, попробуйте:

 foreach(XmlNode node in xmlDocument.GetElementsByTagName("Processo"))
 {
     comboBoxProcessos.Items.Add(node.InnerText);
 }
0 голосов
/ 15 октября 2019

Пользователь jdweng только что прокомментировал сообщение, и оно сработало как шарм. Большое спасибо !!

foreach (var NomeProcesso in doc.Descendants("NomeProcesso")){ comboBoxProcessos.Items.Add((string)NomeProcesso);}
0 голосов
/ 14 октября 2019

Хотелось бы что-нибудь подобное?

foreach (var elemento in doc.Descendants("Arquitetura")[0].Descendants("Processo")[0]){
        comboBoxProcessos.Items.Add(elemento.Element("NomeProcesso").Value);}
...