MCPcopy Create free account
hub / github.com/Kitware/VTK / xmlNewTextWriterDoc

Function xmlNewTextWriterDoc

ThirdParty/libxml2/vtklibxml2/xmlwriter.c:348–398  ·  view source on GitHub ↗

* xmlNewTextWriterDoc: * @doc: address of a xmlDocPtr to hold the new XML document tree * @compression: compress the output? * * Create a new xmlNewTextWriter structure with @*doc as output * * Returns the new xmlTextWriterPtr or NULL in case of error */

Source from the content-addressed store, hash-verified

346 * Returns the new xmlTextWriterPtr or NULL in case of error
347 */
348xmlTextWriterPtr
349xmlNewTextWriterDoc(xmlDocPtr * doc, int compression)
350{
351 xmlTextWriterPtr ret;
352 xmlSAXHandler saxHandler;
353 xmlParserCtxtPtr ctxt;
354
355 memset(&saxHandler, '\0', sizeof(saxHandler));
356 xmlSAX2InitDefaultSAXHandler(&saxHandler, 1);
357 saxHandler.startDocument = xmlTextWriterStartDocumentCallback;
358 saxHandler.startElement = xmlSAX2StartElement;
359 saxHandler.endElement = xmlSAX2EndElement;
360
361 ctxt = xmlCreatePushParserCtxt(&saxHandler, NULL, NULL, 0, NULL);
362 if (ctxt == NULL) {
363 xmlWriterErrMsg(NULL, XML_ERR_INTERNAL_ERROR,
364 "xmlNewTextWriterDoc : error at xmlCreatePushParserCtxt!\n");
365 return NULL;
366 }
367 /*
368 * For some reason this seems to completely break if node names
369 * are interned.
370 */
371 ctxt->dictNames = 0;
372
373 ctxt->myDoc = xmlNewDoc(BAD_CAST XML_DEFAULT_VERSION);
374 if (ctxt->myDoc == NULL) {
375 xmlFreeParserCtxt(ctxt);
376 xmlWriterErrMsg(NULL, XML_ERR_INTERNAL_ERROR,
377 "xmlNewTextWriterDoc : error at xmlNewDoc!\n");
378 return NULL;
379 }
380
381 ret = xmlNewTextWriterPushParser(ctxt, compression);
382 if (ret == NULL) {
383 xmlFreeDoc(ctxt->myDoc);
384 xmlFreeParserCtxt(ctxt);
385 xmlWriterErrMsg(NULL, XML_ERR_INTERNAL_ERROR,
386 "xmlNewTextWriterDoc : error at xmlNewTextWriterPushParser!\n");
387 return NULL;
388 }
389
390 xmlSetDocCompressMode(ctxt->myDoc, compression);
391
392 if (doc != NULL) {
393 *doc = ctxt->myDoc;
394 ret->no_doc_free = 1;
395 }
396
397 return ret;
398}
399
400/**
401 * xmlNewTextWriterTree:

Callers

nothing calls this directly

Calls 8

xmlCreatePushParserCtxtFunction · 0.85
xmlWriterErrMsgFunction · 0.85
xmlNewDocFunction · 0.85
xmlFreeParserCtxtFunction · 0.85
xmlFreeDocFunction · 0.85
xmlSetDocCompressModeFunction · 0.85

Tested by

no test coverage detected