Parece que no entiendo el propósito de XMLString::transcode(XMLCh*)
y XMLString::transcode(char*)
, porque obviamente no entiendo la diferencia entre XMLCh*
y char*
. ¿Puede alguien hacer las cosas más claras para mí?Propósito de XMLString :: transcode
Respuesta
Xerces codifica información como UTF-16 internamente. Los datos UTF-16 se almacenan utilizando el tipo de datos XMLCh
.
'C-style' cadenas usan char
que está en la página de códigos locales (probablemente UTF-8, pero depende de la plataforma y la configuración) Usas transcode
para convertir entre los dos.
Por ejemplo, si desea alimentar algunos datos de Xerces a otra biblioteca y esa biblioteca espera texto en la página de códigos locales, necesita transcode
. Además, si tiene char
datos y desea alimentarlo a Xerces, necesita transcode
a XMLCh
, porque eso es lo que entiende Xerces.
Por ejemplo:
// to local code page
DOMNode *node = ...;
char* temp = XMLString::transcode(node->getNodeValue());
std::string value(temp);
XMLString::release(&temp);
// from local code page
DOMElement *element = ...;
XMLCh *tag = XMLString::transcode("test");
DOMNodeList *list = element->getElementsByTagName(tag);
XMLString::release(&tag);
No se olvide de soltar la cuerda! Mejor es escribir una envoltura alrededor de él, pero hay examples disponible en internet (solo busque una clase llamada XercesString
).
Si desea saber más acerca de codificaciones Creo que deberías leer The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
- 1. Convertir xmlString en XmlNode
- 2. Vuelca el último fotograma del archivo de video usando ffmpeg/mencoder/transcode et. Al
- 3. IEnumerator Propósito
- 4. Propósito de Python's __repr__
- 5. Propósito de /var/resource_config.json
- 6. propósito de utilizar FrameworkElementFactory
- 7. Propósito de Monitor.Pulse
- 8. django: ¿Propósito de django.utils.functional.SimpleLazyObject?
- 9. Propósito de anulación
- 10. Propósito de Nombre de acción
- 11. Propósito de las transacciones anidadas
- 12. protocolos binarios de propósito general
- 13. Propósito de ClientSettingsProvider.ServiceUri en app.config
- 14. Propósito de SQLAlchemy sobre MySQLdb
- 15. Propósito de constructores predeterminados explícitos
- 16. ¿Propósito de lua_lock y lua_unlock?
- 17. ¿Propósito de las interfaces Zope?
- 18. ¿Propósito de una clase interna?
- 19. Propósito de C/C Prototipos ++
- 20. ¿Propósito de símbolos @ en Python?
- 21. ¿Propósito del encadenamiento de constructor?
- 22. Propósito del impulso :: checked_desert
- 23. ¿Propósito del botón HTML?
- 24. VBScript, propósito del colon?
- 25. Motor de física de propósito general
- 26. Propósito de iniciar una actividad de navegación
- 27. JasperReport: propósito de la banda de detalles
- 28. Propósito de inyección de dependencias marcos
- 29. Propósito de la configuración de Django 'SECRET_KEY'
- 30. Propósito de las protecciones de encabezado
gracias que fue muy útil! – Glolita
¡Agregar algunas líneas de código como ejemplo ayudará mucho a otros lectores como yo! – Jaywalker