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エンコーディングを指定できるものを試してください。xmlOutputBufferの代わりに を使用していることに注意してくださいxmlBuffer。もう 1 つの便利な関数はxmlXPathCastNodeToString、ノードの XPath 文字列値を として返すものxmlCharです。

于 2013-09-13T20:56:19.580 に答える