1

我有这个代码

    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"

结果我需要чатрум

чатрум

我怎样才能做到这一点?

4

1 回答 1

1

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

于 2013-09-13T20:56:19.580 回答