Importar arquivos XML

20/10/2009

0

Bom dia, venho mais uma vez tirar uma dúvida sobre XML

eu gostaria de importar os dados que estão em um arquivo XML para uma base MySQL, a leitura eu consegui fazer, mas surgiu uma dúvida

Função para Leitura do arquivo XML
XElement xml = XElement.Load(sTabela, LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);

            //Mostra Caminho
            MessageBox.Show(string.Format("Caminho : ", xml.BaseUri));

            //Mostra Informacao
            IXmlLineInfo lineInfo = xml as IXmlLineInfo;
            MessageBox.Show(string.Format("LineNumber:  e LinePosition: ", lineInfo.LineNumber, lineInfo.LinePosition));

            //Carrega Dados
            IEnumerable<XElement> enumerable = xml.Elements();

            //Mostra todos os dados
            foreach (var item in enumerable)
                MessageBox.Show(item.ToString());

            //Mostra todos os atributos do elemento LOJA
            foreach (var item in enumerable.Attributes("Loja"))
                MessageBox.Show(item.ToString());

            //Mostra todos os atributos do elemento DATA
            foreach (var item in enumerable.Elements("Data"))
                MessageBox.Show(item.ToString());

            //Mostra todos os atributos do elemento OBS
            foreach (var item in enumerable.Attributes("Obs"))
                MessageBox.Show(item.ToString());


Mas ele me retorna dessa forma. Ex:
<Data>19/10/2009</Data>

Como faço para retornar apenas o campo sem o elemento? Ex:
19/10/2009



Facc

Facc

Responder

Posts

20/10/2009

Facc

Achei isso na internet

string filename = "test.xml";

XmlTextReader tr = new XmlTextReader(filename);

while(tr.Read())
{
     if(tr.NodeType == XmlNodeType.Text)
          System.Console.WriteLine(tr.Value);
}


Realmente exibe apenas o que está entre [b:a6d6afb909]<Node></Node>[/b:a6d6afb909], mas como faço para jogar isso em um insert? pois pelo que percebi ele exibe um elemento de cada vez.


Responder

20/10/2009

Facc

consegui resolver da seguinte forma
//Lista de string para receber dados do XML
            List<string> Dados = new List<string>();
            //Abre arquivo XML
            XmlTextReader linha = new XmlTextReader(sArquivoXml);
            // Enquando existir linha no arquivo faça
            while (linha.Read())
            {
                // Se for uma linha de conteudo apresente do valor da linha.
                if (linha.NodeType == XmlNodeType.Text)
                // Escreve o valor da linha.
                Dados.Add(linha.Value);                
            }


Depois uso [b:e4ff065c4d]Dados[0], Dados[1], Dados[2]..Dados[n][/b:e4ff065c4d] no campo que eu precisar


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar