An update. xmlNodeDump() worked. Could this be an issue with xmlSaveToBuffer()?

-KK

On 8/29/07, Krishna Kumar <[EMAIL PROTECTED]> wrote:
> 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 <[EMAIL PROTECTED]> 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/
> > > [email protected]
> > > http://mail.gnome.org/mailman/listinfo/xml
> >
> >
>
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to