Leer XML con SAX o XmlTextReader

13/01/2004 - 10:18 por revolucion | Informe spam
Hola.
En relación al post puesto por juju estoy tambien
interesado en trabajar con documentos XML de la forma más
eficiente posible en cuanto a memoria se refiere.
Visto lo comentado en ese post ¿quiere decir que
XmlTextReader no funciona como SAX?
Me gustaria saber cual es la forma exacta de trabajar de
la clase XmlTextReader ya que me gustaria implementar una
clase que trabaje con XML y como he comentado antes de la
forma más eficiente posible en cuanto a consumo de memoria.

Un Saludo.

Preguntas similare

Leer las respuestas

#1 Skar
13/01/2004 - 14:55 | Informe spam
Aqui va una comparasion de SAX y el XmlReader
* Al igual que SAX, el XmlReader solo lee de principio a fin (no puede
volver a leer un nodo que ya ha sido parseado).
* Es rapido y no require que pongas el documento en memoria (DOM o Cache)
* Puede leer un documento o un stream
* La mayor diferencia entre SAX y XmlReader es que SAX es un modelo PUSH,
esto quiere decir que el parser te envia (push) informacion cada vez que
encuentra un nodo y tu programa procesa esa informacion.
En cambio XmlReader te brinda un modelo PULL, lo cual quiere decir que tu
jalas/recoges/eliges (perdon por mi poco conocimiento de el espaniol) los
nodos que tu quieres procesar.

Otros beneficios, son administracion de el estado (state management),
abilidad de PULL informacion de no solo un documento sino de varios al mismo
tiempo (algo parecido al XMLFilter en SAX). El SAX puede ser usado con el
XmlReader, pero no alrevez.

Otro beneficio es con relacion a el uso de memoria, por ejemplo en SAX el
parser tiene un buffer (campo de memoria) el cual es usado para poner la
info de los nodos, el siguiente paso es de mover la info de el buffer a un
objeto de tipo string, el cual es pasado a tu programa para ser procesado,
en cambio el XmlReader te permite que tu programa cree el buffer y el parser
escribe la info en este parser.
Y bueno como dije anteriormente, la abilidad de que tu tienes de escoger los
nodos que tu quieres leer y procesar.

:o) Espero que esto sea suficiente, para mas info fijate la documentacion
de .Net

OJO que el XmlReader es algo especifico a Microsoft, no es un standard como
SAX o DOM

"revolucion" wrote in message
news:024101c3d9b6$32680920$
Hola.
En relación al post puesto por juju estoy tambien
interesado en trabajar con documentos XML de la forma más
eficiente posible en cuanto a memoria se refiere.
Visto lo comentado en ese post ¿quiere decir que
XmlTextReader no funciona como SAX?
Me gustaria saber cual es la forma exacta de trabajar de
la clase XmlTextReader ya que me gustaria implementar una
clase que trabaje con XML y como he comentado antes de la
forma más eficiente posible en cuanto a consumo de memoria.

Un Saludo.
#2 revolucion
14/01/2004 - 17:21 | Informe spam
Hola.
OK. Me has aclarado mucho las dudas que tenía. Voy a
intentar poner en practica la utilización de la clase
XMLReader.
Un Saludo.

Mostrar la cita
fin (no puede
Mostrar la cita
memoria (DOM o Cache)
Mostrar la cita
un modelo PUSH,
Mostrar la cita
informacion cada vez que
Mostrar la cita
quiere decir que tu
Mostrar la cita
el espaniol) los
Mostrar la cita
management),
Mostrar la cita
de varios al mismo
Mostrar la cita
ser usado con el
Mostrar la cita
ejemplo en SAX el
Mostrar la cita
usado para poner la
Mostrar la cita
de el buffer a un
Mostrar la cita
para ser procesado,
Mostrar la cita
buffer y el parser
Mostrar la cita
tienes de escoger los
Mostrar la cita
fijate la documentacion
Mostrar la cita
es un standard como
Mostrar la cita
in message
Mostrar la cita
memoria.
Mostrar la cita
Ads by Google
Search Busqueda sugerida