hey chicos, Tengo este escenario:Cómo leer de un XmlReader sin moverlo reenvía
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == itemElementName)
{
XElement item = null;
try
{
item = XElement.ReadFrom(reader) as XElement;
}
catch (XmlException ex)
{
//log line number and stuff from XmlException class
}
}
}
En el bucle de arriba estoy transformando un determinado nodo (itemElementName) en una XElement.
Algunos nodos serán buenos XML e irán a un elemento XElement; sin embargo, algunos no lo harán.
En el CATCH, me gustaría no solo capturar las cosas estándar de XmlException ... También me gustaría capturar un extracto del Xml actual y una cadena.
Sin embargo, si realizo cualquier tipo de operación de LECTURA en el nodo antes de pasarlo al XElement, mueve el lector hacia adelante.
¿Cómo se puede obtener una "instantánea" de los contenidos del OuterXml del lector sin interferir con su posición?
sí, perfecto, gracias, eso es exactamente lo que estaba sucediendo. ¡gracias por la explicación! – andy
Ah ... Totalmente malinterpreté el punto de ReadSubTree, entonces ... lo siento.Sin embargo, para ser sincero, esto no es obvio a partir de la documentación en el navegador de objetos, pero la página de MSDN lo hace más claro. – Flynn1179
Acabo de regresar y eché un vistazo al código que tengo que lo usa; en realidad, deja de leer por completo una vez que ha terminado con el subárbol, por lo que nunca me di cuenta de que también había avanzado el lector original. – Flynn1179