Tengo un documento xml grande en una cadena. ¿Cuál es la mejor manera de determinar si el xml está bien formado?¿Cómo determinar si XML está bien formado?
Respuesta
Algo así como:
static void Main() {
Test("<abc><def/></abc>");
Test("<abc><def/><abc>");
}
static void Test(string xml) {
using (XmlReader xr = XmlReader.Create(
new StringReader(xml))) {
try {
while (xr.Read()) { }
Console.WriteLine("Pass");
} catch (Exception ex) {
Console.WriteLine("Fail: " + ex.Message);
}
}
}
Si es necesario comprobar contra un xsd, a continuación, utilizar XmlReaderSettings
.
Simplemente ejecútelo a través de un analizador. Eso realizará las comprobaciones apropiadas (si analiza bien).
Si se trata de un documento grande (como se indica), será apropiado un analizador basado en eventos (por ejemplo, SAX) ya que no almacenará el documento en la memoria.
A menudo es útil tener utilidades XML para comprobar este tipo de cosas. Yo uso XMLStarlet, que es un conjunto de herramientas de línea de comandos para comprobación/manipulación de XML.
XmlReader parece una buena elección, ya que debe transmitir los datos (no cargar todo el xml de una sola vez)
tratar de usar un XmlReader con un XmlReaderSettings que tiene ConformanceLevel conjunto .Document.
- 1. Java diciendo que el documento XML no está bien formado
- 2. Error de análisis XML: no está bien formado
- 3. Guardar bien formado XML desde PowerShell
- 4. primavera AOP pointcut no está bien formado
- 5. Comprueba si el archivo remoto está bien formado XML con PHP
- 6. ¿Comprueba el XML bien formado sin try/catch?
- 7. Análisis XML en Python: expaterror no bien formado
- 8. error: Error al analizar XML: no está bien formado (token inválido) ...?
- 9. ¿<input> está bien formado sin <form>?
- 10. Comprueba si un NSString está formado por espacios
- 11. Cómo leer XML bien formado en Java, pero omita el esquema?
- 12. Un valor numérico no bien formado encontrado
- 13. ¿Cómo desactivo la validación al analizar XML bien formado con DocumentBuilder.parse?
- 14. Cómo analizar XML mal formado en Java?
- 15. Cómo determinar si NSString está vacío
- 16. tiene error con saxParser en android (no está bien formado (token inválido))
- 17. Determinar si el módulo Magento está habilitado
- 18. Ruby Unit Test: ¿Es este un documento XML válido (bien formado)?
- 19. ¿Manera eficiente de construir un documento XML a partir de una cadena que contiene XML bien formado para la navegación?
- 20. ¿Determinar si la tienda está abierta?
- 21. Determinar si una cadena está "vacía"
- 22. Respuesta de jabón, XML no bien formado, sin partes XOP ubicadas, usando WSE
- 23. análisis XML error: no bien formado en Firefox, pero bueno en Chrome
- 24. Escribir una máquina virtual - ¿código de bytes bien formado?
- 25. ¿Por qué jQuery insiste en que mi texto plano no está "bien formado"?
- 26. Cómo determinar si el canal remoto ya está registrado
- 27. es `* - p 'realmente legal (bien formado) en C++ 03
- 28. ¿Cómo determinar si se está manejando una excepción .NET?
- 29. Determinar si la transacción SQLite3 está activo
- 30. Determinar si un archivo está abierto