Cómo utilizar el evento impulsado SAX (API simple para XML) analizador en C # o es mejor utilizar System.XML espacio de nombres?

StackOverflow https://stackoverflow.com/questions/4164031

Pregunta

En C ++ podemos importar DLL msxml a nuestra aplicación y luego poner en práctica los métodos de la interfaz de ISAXContentHandler en una clase de nuestra aplicación. Más tarde crear un objeto ISAXReader e invocar el ContentHandler con la instancia de esta clase en la que hemos dado el implemnatation para las interfaces manejador de sucesos.
Similarmente quiero lograr lo mismo en C #. ¿Hay alguna manera de hacer esto en C # ?? Quiero decir ¿hay alguna manera de tener eventbased SAX analizar en C #. Hay un método más que pensé que me ayude en la consecución de analizar el documant XML y obtener la información XML a mi solicitud. He seguido el enlace " http://www.codeguru.com/csharp/csharp/cs_data/xml/article.php/c4221 "

Aquí DOM se utiliza y está siendo utilizado System.XML espacio de nombres. ¿Puede alguien ayudarme con amablemente este sentido, ---- ¿Cuál es el camino para lograr Evento impulsado por el análisis de XML en C # o debo usar espacio de nombres System.XML (DOM). si existe una manera controlada por eventos SAX PLZ me dejó saber cómo hacerlo en C #

¿Fue útil?

Solución

Creo que el más cercano se llega a un SAX-lector en el .NET Framework es la XmlReader clase. No es evento basado, pero que le permite iterar a través del documento de una manera similar. Mira este ejemplo: http://msdn.microsoft. com / es-es / library / system.xml.xmlreader.read.aspx

Si necesita el máximo rendimiento a continuación, el XmlReader es una opción buena, pero hay otras alternativas que ofrecen una API más amigable. El XmlDocument clase le permite tratar el documento XML como un árbol jerárquico, mientras que el XDocument que permite utilizar LINQ para analizar el código XML. Cuál se necesita depende del modelo que se sienta cómodo y sus necesidades.

Otros consejos

me encontré con un problema similar hace algún tiempo. Aunque no puedo responder que es mejor, la ya implementada System.XML DOM o un analizador SAX C # (esto realmente depende de la aplicación), te puedo decir que sí es posible implementar un analizador SAX en C #.

De hecho, ya ha sido realizado por Martin Friedrich en CodeProject: Hacia una declarativa SAX marco: Parte 1 - Una simple SAX-a-C # -Mapping

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top