예제 #1
0
static int writeString(const char *str, const char *filename, DFError **error)
{
    DFBuffer *buf = DFBufferNew();
    DFBufferAppendString(buf,str);
    int ok = writeData(buf,filename,error);
    DFBufferRelease(buf);
    return ok;
}
예제 #2
0
void DFNodeTextToBuffer(DFNode *node, DFBuffer *buf)
{
    switch (node->tag) {
        case DOM_TEXT:
        case DOM_CDATA: {
            DFBufferAppendString(buf,node->value);
            break;
        }
    }
    for (DFNode *child = node->first; child != NULL; child = child->next)
        DFNodeTextToBuffer(child,buf);
}
예제 #3
0
int DFSerializeXMLStorage(DFDocument *doc, NamespaceID defaultNS, int indent,
                          DFStorage *storage, const char *filename,
                          DFError **error)
{
    char *str = DFSerializeXMLString(doc,defaultNS,indent);
    DFBuffer *content = DFBufferNew();
    DFBufferAppendString(content,str);
    int r = DFBufferWriteToStorage(content,storage,filename,error);
    DFBufferRelease(content);
    free(str);
    return r;
}