Faccruz 0 Denunciar post Postado Outubro 20, 2009 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 : {0}", xml.BaseUri)); //Mostra Informacao IXmlLineInfo lineInfo = xml as IXmlLineInfo; MessageBox.Show(string.Format("LineNumber: {0} e LinePosition: {1}", 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 Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Outubro 20, 2009 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 <Node></Node>, mas como faço para jogar isso em um insert? pois pelo que percebi ele exibe um elemento de cada vez. Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Outubro 20, 2009 Que "insert" você se refere? Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Outubro 20, 2009 Que "insert" você se refere? Insert em banco de dados Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Outubro 20, 2009 E você não quer inserir uma linha por vez? Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Outubro 20, 2009 E você não quer inserir uma linha por vez? 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 Dados[0], Dados[1], Dados[2]..Dados[n] no campo que eu precisar Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites