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; }
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); }
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; }