Si voy a usar un archivo XML para almacenar cierta información, ¿voy a necesitar un Analizador XML que lea/escriba datos? ¿Puedo usar funciones de manipulación de cadenas y por qué no?Uso de archivos XML para almacenar datos
Respuesta
Posiblemente podría utilizar funciones de manipulación de cadenas, ya que eso es lo que las bibliotecas XML terminan usando de todos modos. Los documentos XML son solo cadenas largas en un formato especial. Sin embargo, a menos que sepa mucho sobre XML (y qué es y no es XML válido), el uso de un analizador/serializador XML ahora le ahorrará muchos problemas más adelante. Hay matices en XML (espacios de nombres, secuencias de escape, etc.) que causarán problemas en el código interno que no sabe cómo manejarlos correctamente. Y para cuando hayas manejado todos los casos especiales, de todos modos habrás escrito un analizador XML a medias.
No ... Repito ... No analice ni construya XML a mano.
En mi trabajo, implementamos una gran cantidad de interfaces entre diferentes proveedores. No puedo decirte cuántas veces hemos estado trabajando en una interfaz basada en xml y hemos encontrado algún tipo de problema de codificación/decodificación de escape. Una de las primeras pruebas que ejecutaré cuando me conecte a un servicio basado en xml es poner caracteres xml ilegales en la entrada.
¿Cuál es su nombre ?: Bob <> & "
ERROR análisis del documento XML
Nos han topado tantas veces que si alguno de nuestros ingenieros comprobar nada parecido a:!!
xml = "<rootnode>" xml += "<leafnode>" + someValue + "</leafnode>" xml += "</rootnode>"
vamos a considerar seriamente la posibilidad de atracar su variable de pago tan pronto como "someValue" contiene un carácter ilegal, que se pooched a continuación, el código comienza con este aspecto:..
xml = "<rootnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "</rootnode>"
entonces algo está todavía la voladura, por lo que el ingeniero genio trata:
xml = "<rootnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "</rootnode>" xml = XmlEscape(xml)
Nota: este proceso se ha logrado realmente a mí dos veces mientras se trabaja en una interfaz.
Antes de darse cuenta, su flujo a través del cable termina pareciéndose a
&lt;rootnode>HELP<rootnode> &lt;rootnode>ME&lt;rootnode&gt;
RESUMEN:
favor utilice una biblioteca. k thx bye.
Podemos utilizar tinyXml2 y hacer que nuestro trabajo sea más fácil, basta con incluir la cabecera y cpp de tinyxml2 y Huy analizar y escribir Éntrenos en encontrar los documentos y manual en
- 1. Uso de HttpContext.Current.Application para almacenar datos simples
- 2. para almacenar datos XML como XML o en tablas normalizadas
- 3. ¿Cómo uso Nokogiri :: XML :: Reader para analizar grandes archivos XML?
- 4. almacenar xml dentro de xml
- 5. Uso de Rest para almacenar datos en Sqlite
- 6. Uso de NSKeyedArchiver para almacenar el modelo de datos personalizado
- 7. uso de arrays VS objetos para almacenar datos
- 8. Base de datos NoSQL para almacenar archivos grandes?
- 9. Usar archivos ZIP para almacenar datos de NSDocument
- 10. ¿Cómo uso PowerShell para validar archivos XML en un XSD?
- 11. Almacenar grandes cantidades de datos: ¿DB o sistema de archivos?
- 12. ¿Es "malo" almacenar XML en una base de datos?
- 13. Biblioteca C++ para almacenar configuraciones en XML
- 14. Estructura de datos para almacenar matrices dispersas
- 15. extrayendo datos de archivos xml usando MATLAB
- 16. ¿Es bueno Cassandra para almacenar archivos?
- 17. ¿Dónde almacenar archivos .properties para Java?
- 18. Uso de curl para cargar datos POST con archivos
- 19. Almacenar en Datos de Sesión vs almacenar en Base de Datos Sql para datos temporales
- 20. Uso de StringWriter para la serialización XML
- 21. Uso de MemoryStream para escribir en XML
- 22. Almacenar datos de una aplicación de C#
- 23. Apache Camel: cómo almacenar la variable para un uso posterior
- 24. Estructura de datos para almacenar eventos recurrentes?
- 25. Estructura de datos para almacenar Rangos
- 26. Bases de datos, codificación de caracteres, archivos PDF y XML
- 27. Cómo almacenar archivos .txt Base de datos MySQL?
- 28. Usando el sistema de archivos en lugar de la base de datos para almacenar archivos pdf en jackrabbit
- 29. métodos para almacenar archivos binarios en SVN
- 30. ¿Cómo usar EMF para leer archivos XML?
lo que la biblioteca para ser utilizado con XML? ¿Hay algún tipo de biblioteca integrada o estándar? –
En Java son bibliotecas, en Ruby the're gems. Suponiendo que Java, ve al sitio web apache y mira sus herramientas. – Thufir