Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eric_Developer

Ler registro específico no XML

Recommended Posts

Olá pessoal,

 

A minha dúvida é a seguinte:

Como eu faço para selecionar um registro em específico em um arquivo XML, por exemplo:

Eu tenho um arquivo de logs e quero selecionar apenas os registros de um IP específico, aí eu utilizo o seguinte método:

'Endereço do arquivo XML
Dim sXml as String = "logs.xml"
'Endereço do arquivo XSD
Dim sXsd as String = "logs.xsd"
'Objeto do tipo XMLDataDocument
Dim oXml As New System.Xml.XmlDataDocument()
'Leitura do schema
oXml.DataSet.ReadXmlSchema(sXsd)
'Leitura do arquivo XML
oXml.Load(sXml)
Dim oDv as New DataView(oXml.DataSet)
oDv.RowFilter = "IP = '192.168.0.1'"
Porém, quando o arquivo é muito grande, pode comprometer a performance da aplicação.

Existe algum para aplicar o filtro antes de selecionar todo o arquivo assim como o SQL Server faz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por responder quintelab,

 

Cara, eu dei uma olhada mas não achei nada sobre ler um registro em específico... Só achei o que eu já tenho hoje: método para carregar o XML em um DataSet e depois filtrar (o que prejudica a performance caso o arquivo seja muito grande..).

Compartilhar este post


Link para o post
Compartilhar em outros sites

A forma mais tradicional que eu conheço é como você disse alimentando um DataSet.

Até onde meu conhecimento vai eu conheço a classe XmlNode que pode filtrar os nós de um Xml, pode filtrar os nós filhos, mas pesquisei um pouco e não achei como procurar um registro específico.

De uma olhada neste artigo, não é o que você quer, mas talvez auxilie: http://www.aspnettutorials.com/tutorials/d...ase/XML-vb.aspx

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ressuscitando o tópico!

 

Eu acho interessante utilizar o XML para armazenar logs pois além de ser mais fácil de manipular do que o txt, é mais barato do que o SQL Server.

 

Mas na hora de gerar um relatório de um log grande, como por exemplo o de acessos de um site, não posso prejudicar a memória ram do servidor uma vez que eu armazeno o arquivo em um DataSet?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.