【问题标题】:libxml xmlNodeDump encoding issuelibxml xmlNodeDump 编码问题
【发布时间】:2013-02-06 15:54:07
【问题描述】:

我有这个代码

    if(genericPtr->type == XML_ATTRIBUTE_NODE){
        xmlAttrPtr attr = (xmlAttrPtr)genericPtr;
        printf("\n str %s\n", (const char *)attr->children->content);
    }

    xmlBufferPtr bufferPtr = xmlBufferCreate();
    if (IsXmlNsPtr(genericPtr)){
        xmlNodeDump(bufferPtr, NULL, (xmlNodePtr)genericPtr, 0, format);
    }else{
        xmlNodeDump(bufferPtr, ((xmlStdPtr)genericPtr)->doc, (xmlNodePtr)genericPtr, 0, format);
    }

    printf("\n str2 %s\n", (const char *)bufferPtr->content);

结果是

str чатрум@muc.chat.quickblox.com/300

str2  to="чатрум@muc.chat.quickblox.com/300"

结果我需要 чатрум 而不是

чатрум

我该怎么做?

【问题讨论】:

    标签: libxml2 kissxml


    【解决方案1】:

    试试xmlNodeDumpOutput,它允许您指定编码。请注意,它使用xmlOutputBuffer 而不是xmlBuffer。另一个有用的函数是xmlXPathCastNodeToString,它将节点的XPath 字符串值返回为xmlChar

    【讨论】:

    • 嗨,我使用的正是这种方法,xmlNodeDumpOutput,但即使声明所需的输出编码,我总是有一个 UTF-8 输出。你能给我指出正确的方向吗?
    • @Mr.Gate 你想使用什么编码?你确定你的 libxml2 安装支持它吗?
    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多