Nuestros mejores programadores agotaron sus reservas de café, en su búsqueda todo el tiempo por la respuesta, hasta que Adán encontró la contestación en GitLab así que hoy la comparte contigo.
Solución:
Puede hacerlo sin modificar el flujo XML: Dígale al XmlReader que no sea tan quisquilloso. Configuración de la XmlReaderSettings.ConformanceLevel
para ConformanceLevel.Fragment
permitirá que el analizador ignore el hecho de que no hay un nodo raíz.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
using (XmlReader reader = XmlReader.Create(tr,settings))
...
Ahora puede analizar algo como esto (que es un flujo XML en tiempo real, donde es imposible ajustarlo con un nodo).
1354902435238
7073822
7d1300786a0000000bf9458b0518000000000000000000000000000000000c0c030306001b
fd1260780912ff3028fea5ffc0387d640fa550f40fbdf7afffe001fff8200fff00f0bf0e000042201421100224ff40312300111400004f000000e0c0fbd1e0000f10e0fccc2ff0000f0fe00f00f0eed00f11e10d010021420401
fd126078ad11fc4015fefdf5b042ff1010223500000000000000003007ff00f20e0f01000e0000dc0f01000f000000000000004f000000f104ff001000210f000013010000c6da000000680ffa807800200000000d00c0f0
Tienes que adjuntar tu
los elementos en un elemento circundante como documentos XML solo pueden tener un nodo raíz:
Text
Text
Text
Text
Como está recibiendo este marcado de otro lugar, en lugar de generarlo usted mismo, es posible que deba hacerlo usted mismo tratando la respuesta como un string y envolviéndolo con las etiquetas apropiadas, antes de intentar analizarlo como XML.
Entonces, tienes un par de opciones:
- Haz que el proveedor del servicio web te devuelva real XML que tiene un nodo raíz
- Preprocesar el XML, como sugerí anteriormente, para agregar un nodo raíz
- Preprocesar el XML para dividirlo en varios fragmentos (es decir, uno para cada
nodo) y procesar cada uno como un documento XML distinto
Envuelva el xml en otro elemento
Text
Text
Text
Text
Recuerda que puedes comunicar este artículo si te fue útil.