2009-12-19 7 views
5

He intentado encontrar algún código para este trabajo en los tutoriales y en google, sin suerte.Código de muestra para análisis XML Unicode usando PugiXML

Si alguien ha usado PugiXml, ¿podría ayudarme?

Mi problema principal es Unicode, de lo contrario la biblioteca es muy fácil de usar.

Gracias de antemano.

+0

veo que PugiXML asume actualmente que todas las entradas es UTF-8. ¿Tiene problemas para analizar un archivo UTF-8 o está tratando de usar PugiXML con wchar_t/wstring o ...? – ZoogieZork

+0

En realidad estoy tratando de usar una matriz wchar_t [] para almacenar datos. – Wartin

+0

Parece que la clave es usar 'pugi :: as_utf8()' para pasar datos wchar_t a PugiXML y 'pugi :: as_utf16()' para obtener datos wchar_t. Supongo que todas las cadenas de caracteres * usadas por PugiXML son UTF-8, pero no está claro en la documentación. – ZoogieZork

Respuesta

0

Abra pugiconfig.hpp y descomente PUGIXML_WCHAR_MODE.

Ahora puede usar wchar_t y std :: wstring en lugar de char y std :: string respectivamente.

de inicio rápido está aquí: http://pugixml.googlecode.com/svn/tags/latest/docs/quickstart.html

+0

¿Qué tiene esto que ver con Unicode? UTF-8 es una codificación Unicode perfectamente válida. –

+0

@Nicol Bolas Depende de la plataforma. En Windows no puedes incluir un carácter Unicode en el tipo char. Debe ser wchar_t. http://stackoverflow.com/questions/402283/stdwstring-vs-stdstring – junglecat

+0

Primero, Unicode no tiene caracteres; tiene puntos de código, unidades de código y grafemas. En segundo lugar, UTF-8 ** es una codificación Unicode perfectamente válida **; en qué plataforma estás trabajando es * irrelevante * para ese hecho. UTF-8 no deja de funcionar solo porque estás en Windows. Sí, para abrir un archivo cuyo nombre no utiliza caracteres ASCII, debe convertirlo a UTF-16 en Windows. Pero esa es una cuestión de la interfaz API, no de la naturaleza de "Unicode". Microsoft no dicta qué significa "Unicode". –