Hi Daniel, On Thursday, 25. September 2008 17:05, Daniel Veillard wrote: > On Wed, Sep 17, 2008 at 06:48:37PM +0200, Hartmut Sbosny wrote: > > Hello, > > I am fresh to libxml. I want to read an xml file containing > > the part > > <data> > > <![CDATA[...]]> > > </data> > > > > Currently I use the xmlParseDoc() interface. My first try was to read the > > <data> node string via xmlNodeListGetString(). This returns something > > You just can't using that API.
Is this a principle limitation of the xmlParseDoc API or only an accidental API lack? Which API is suitable to read cdata? Sorry for my stumbling asking, I am new to libxml and xml. > > > > From there I could in princple extract the pure "..." content by > > > subtracting the trailing white space node string, but it seems to me > > > there should exist an easier libxml way to read the CDATA content? > > wei:~/XML -> cat tst.xml > <data> > <![CDATA[...]]> > </data> > > wei:~/XML -> xmllint --debug tst.xml > DOCUMENT > version=1.0 > URL=tst.xml > standalone=true > ELEMENT data > TEXT compact > content= > CDATA_SECTION > content=... > TEXT compact > content= > wei:~/XML -> > > navigate in the tree and grab the data as content-> from the second > child of your containing element I probably miss the point. Do you mean I should use the command line tool 'xmllint'? This would be rather inconvinient for me. I have ready (more or less) a C program - using the xmlParseDoc API - which reads an XML file, where the cdata content is only a small piece of. As a workaround to get the cdata I evaluate currently the three strings "___...___" "...___" "___" (in the said symbolic meaning) which I get when I parse through the children of the <data> element using xmlNodeListGetString(). Is that something I should not rely on? Thanks for your response Hartmut _______________________________________________ xml mailing list, project page http://xmlsoft.org/ xml@gnome.org http://mail.gnome.org/mailman/listinfo/xml