Cómo utilizar Xerces C para analizar archivos XML que contienen caracteres chinos
Analizar XML que contiene caracteres chinos. Cómo utilizar XercesC++ para analizar XML que contiene caracteres chinos. Descargue el código de muestra para este artículo. Xerces-C++ es actualmente un analizador XML ampliamente utilizado al escribir con él. Ocurrirá cuando las aplicaciones XML procesen documentos XML que contengan caracteres chinos. Cómo resolver correctamente este problema es muy útil para nosotros a la hora de desarrollar aplicaciones XML. Este artículo proporciona el método de procesamiento correcto y el código de la clase de implementación. Espero que sea útil para todos.
1. Introducción a los antecedentes Con la popularización y aplicación de la tecnología XML, varias industrias en China pueden generar una gran cantidad de documentos XML que contienen caracteres chinos. Aunque el
analizador XML basado en tecnología Java puede procesar mejor estos documentos XML, no puede resolver todos los problemas debido a la complejidad del desarrollo de aplicaciones, especialmente en mi país
Pantalla. Sabemos que muchos sistemas de aplicaciones en las empresas se desarrollan utilizando C, C++, VB, Delphi, FoxPro y otros lenguajes. Es imposible reimplementar estas aplicaciones en lenguaje Java. Entonces surge la pregunta de cómo hacer que estas aplicaciones también procesen XML. ¿Sobre documentos, incluso documentos XML que contienen caracteres chinos? Actualmente, las implementaciones más famosas del lenguaje XML Parser C++ incluyen Xerces de la organización Apache y XML4C de IBM. Xerces de Apache se deriva de XML4C de IBM,
por lo que su interfaz de programación es consistente. La diferencia clave entre los dos es la codificación de caracteres. Antes de Xerces1.6 de Apache, solo admitía algunas codificaciones de caracteres, como ASCII, UTF-8,
UTF-16, UCS4, EBCDIC IBM037 IBM1140, ISO-8859-1 y Windows-1252. Por lo tanto, el analizador Xerces ++ que utiliza Apache
no puede procesar documentos XML que contengan caracteres chinos. XML4C de IBM admite codificaciones de hasta 100 caracteres y combina Xerces e International Components Unicode (ICU). Por lo tanto, podemos elegir XML4C como analizador XML. Antes de usar XML4C, primero debemos confirmar si el directorio bin de XML4C está incluido en la ruta del sistema. El directorio bin debe tener estos archivos dll: xerces-c_1_6_0D.dll, icudt20.dll, icuuc20.dll e icuuc20d.dll. Descripción del problema Durante el proceso de aplicación de XML4C, descubrí que llamar a algunas API proporcionadas por XML4C
no podía resolver muy bien el problema chino. Por ejemplo, al analizar XML, se genera un DOM_Document y se obtiene un determinado nodo DOM_Node
utilizando el método DOM. Para obtener el nombre o valor de DOM_Node, DOM_Node
, el método transcode() de la clase DOMString devuelve una copia de la cadena y codifica la cadena de acuerdo con la página de códigos local. Por lo tanto, cuando analicé el documento XML en la Figura 1
e intenté obtener el nombre del nodo "Patriotic People", el método de transcodificación devolvió el nombre de nodo incompleto "Patriotic",
y No son "personas patrióticas" completas. De esta manera, no podemos usar esta información para realizar comparaciones de cadenas y otras operaciones, y surgirán problemas en el procesamiento XML. Por lo tanto, el método de transcodificación de DOMString
no puede manejar caracteres chinos en XML.
clase StrFormatTarget publicXMLFormatTarget public:char GetResult();StrFormatTarget() La codificación del documento XML está definida por el encabezado del documento #include