Как вставить несколько элементов xml в строку списка - PullRequest
0 голосов
/ 16 октября 2019

По сути, я работаю над кодом другого человека, и я нашел кое-что, что не очень хорошо, но я также не знаю, как его улучшить.

Мне нужно вставить некоторые элементы XML впросмотр списка, а иногда это больше, чем 1 элемент в строке (это означает, что мне нужно использовать подэлементы). Дело в том, что в этом случае ему нужно было получить 2 элемента и сделать это, и теперь мне нужно сделать то же самое, но для 7 предметов ... и богами, которые будут путать, используя эту логику. Проблема в том, что я не могу сделать это лучше, потому что я только начинаю программировать.

Итак, как я могу сделать этот foreach полезным независимо от количества элементов, которые мне нужно получить?

auxGeral = 0;
auxEsp = 0;
            foreach (var elemento in doc.Descendants("NomeAtividade"))
            {
                ListViewItem i = new ListViewItem((string)elemento);
                foreach (var elemento2 in doc.Descendants("ProcessoRelacionado"))
                {
                    if (auxGeral >= auxEsp)
                    {
                        i.SubItems.Add((string)elemento2);
                        break;
                    }
                    auxGeral++;
                }
                auxEsp++;
                listViewAtividade.Items.Add(i);
            }

Вот немного XML (мне нужно получить все элементы внутри узла в одном формате, например, «Informacao» имеет «NomeInformacao», «FormatoInformacao» и «ObservacoesInformacao», и мне нужно получить тетри внутри):


<?xml version="1.0" encoding="utf-8"?>
<Arquitetura>
  <NomeArquitetura>TesteAto</NomeArquitetura>
  <VersaoArquitetura>1</VersaoArquitetura>
  <Atividades>
    <Atividade>
      <ProcessoRelacionado>processo1</ProcessoRelacionado>
      <NomeAtividade>atividade1</NomeAtividade>
    </Atividade>
    <Atividade>
      <ProcessoRelacionado>processo2</ProcessoRelacionado>
      <NomeAtividade>atividade2</NomeAtividade>
    </Atividade>
    <Atividade>
      <ProcessoRelacionado>processo2</ProcessoRelacionado>
      <NomeAtividade>atividade2,5</NomeAtividade>
    </Atividade>
  </Atividades>
  <Informacoes>
    <Informacao>
      <NomeInformacao>info1</NomeInformacao>
      <FormatoInformacao>formato1</FormatoInformacao>
      <ObservacoesInformacao>obs1</ObservacoesInformacao>
    </Informacao>
    <Informacao>
      <NomeInformacao>info2</NomeInformacao>
      <FormatoInformacao>form2</FormatoInformacao>
      <ObservacoesInformacao>obs2</ObservacoesInformacao>
    </Informacao>
  </Informacoes>
</Arquitetura>

...