On Tue, May 19, 2009 at 01:26:04PM +0200, [email protected] wrote:
> 
> 
> Hello, 
> 
> I'm trying to use XPath with libxml2 and I came accross a strange behavior
> which I do not understand: 
> 
> Here a summary of the parsing of my doc and the XPath evaluation: 
> 
> I took the code sometime ago from the "xmlCreateURLParserCtxt( const char*
> filename , int options )" 
> 
>  xmlParserCtxtPtr ctxt;
>  xmlParserInputPtr inputStream;
>  char *directory = NULL;
> 
>  ctxt->_private = this;
>  ctxt->sax->serror = libxml2_gcdk_error_handler_adapter;
>  ctxt->linenumbers = 1;
>  ctxt->replaceEntities = 1; 
> 
>  ctxt->validate = 0; 
> 
>  inputStream = NULL;
>  inputStream = xmlLoadExternalEntity(p_filename, NULL, ctxt); 
> 
>  inputPush(ctxt, inputStream);
>  if ((ctxt->directory == NULL) &
>  if ((ctxt->directory == NULL) & 
> 
>  ctxt->validate = 1;
>  xmlParseDocument( ctxt ); 
> 
> And it seems that in this case, my XPath expressions does not gave any
> result node, while when I initialize ctxt->validate to 0, It gave me the
> good results. 
> 
> Is there anyone who could explain me what I'm doing wrong please ? 

  I really don't understand why you don't use xmlReadDoc directly
for parsing !
  Why XPath works without validation versus with validation might
be due to a defaulted default namespace coming from the DTD.

  But you're doing things in a very complex way and I can't see a good
reason for this. Use the existing API instead of copy/pasting stuff ...

Daniel


-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
[email protected]  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to