[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] Usage of xmlSaveTree() proper?
- From: "Krishna Kumar" <krish kumar gmail com>
- To: "Lars Oppermann" <Lars Oppermann sun com>
- Cc: xml gnome org
- Subject: Re: [xml] Usage of xmlSaveTree() proper?
- Date: Wed, 29 Aug 2007 14:51:35 +0530
Thanks. I added -
> > xbuf = xmlBufferCreate();
> > xmlNodePtr node = nodes->nodeTab[0];
sCtxt = xmlSaveToBuffer(xbuf,NULL,0);
> > xmlSaveTree(sCtxt,node);
and I still get the same error.
Curiously, now xmlElemDump() also doesnt work!
-KK
On 8/29/07, Lars Oppermann <Lars Oppermann sun com> wrote:
> You are passing an uninitialized variable sCtxt to xmlSaveTree. I'd
> suggest you take a look at the documentation on xmlSaveTo... functions,
> e.g.
> xmlSaveCtxtPtr xmlSaveToBuffer(
> xmlBufferPtr buffer,
> const char * encoding,
> int options)
> at http://www.xmlsoft.org/html/libxml-xmlsave.html
>
> Furthermore, when accessing the XPath query, you may want to use
> xmlXPathNodeSetItem see
> http://www.xmlsoft.org/html/libxml-xpath.html#xmlXPathNodeSetItem) and
> do proper error checking (but you were going to add that later anyway,
> weren't you? ;)
>
> HTH
> Lars
>
> Krishna Kumar wrote:
> > Hi,
> >
> > Am I using xmlSaveTree() properly in the following example? I am
> > getting a "Internal error, no document" error on running this piece of
> > code.
> >
> > Or is something else throwing that error? I am simply trying to
> > extract a node and its decendants and storing them in a buffer, so i
> > can use them in a string for later. BTW, the commented call to
> > xmlElemDump() works.
> >
> > void SAMLAssertion::parse_assertion(const String &source) {
> >
> > XMLPlatformUtils::Initialize();
> > xmlDocPtr doc;
> > xmlXPathContextPtr xpathCtx;
> > xmlXPathObjectPtr xpathObj;
> >
> > xmlSaveCtxtPtr sCtxt;
> > xmlBufferPtr xbuf;
> >
> > doc = xmlParseMemory(source.chars(), source.length());
> >
> > xpathCtx = xmlXPathNewContext(doc);
> >
> > xmlXPathRegisterNs(xpathCtx, (const xmlChar* )"ds", (const
> > xmlChar* )"http://www.w3.org/2000/09/xmldsig#");
> > xmlXPathRegisterNs(xpathCtx, (const xmlChar* )"saml", (const
> > xmlChar* )"urn:oasis:names:tc:SAML:2.0:protocol");
> >
> > xpathObj = xmlXPathEvalExpression((const xmlChar*
> > )"/ds:SignedInfo/descendant-or-self::node()", xpathCtx);
> >
> > xmlNodeSetPtr nodes = xpathObj->nodesetval;
> >
> > xbuf = xmlBufferCreate();
> > xmlNodePtr node = nodes->nodeTab[0];
> > xmlSaveTree(sCtxt,node);
> > //xmlElemDump(stdout,doc,nodes->nodeTab[0]);
> >
> > xmlSaveClose(sCtxt);
> > xmlFreeDoc(doc);
> > xmlBufferFree(xbuf);
> > XMLPlatformUtils::Terminate();
> >
> > }
> >
> > Thanks,
> > Krishna Kumar
> > _______________________________________________
> > xml mailing list, project page http://xmlsoft.org/
> > xml gnome org
> > http://mail.gnome.org/mailman/listinfo/xml
>
>
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]