Juhani Connolly schrieb:
When using xmllib to parse an rss feed that includes an unquallified xml namespace the document will include nothing.
Hi Juhani, I guess you mean what's called the default namespace (no prefix).
Are we meant to be doing something special before calling xmlParseFile (or another similar function)?
I'd say so, if we want to work with namespaces.
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' > Feeding any similar feed through a barebones test program with an xmlParseFile and xpath operation for something like //item there are no hits.
The expression //item looks for element nodes named "item" *in no namespace*. Your feed has "item" nodes in the Atom namespace.
Upon deleting [xmlns='http://www.w3.org/2005/Atom'] it works fine, all the items are picked up.
Yes, because now the default namespace (no prefix) is mapped to the empty namespace, not to the Atom namespace.
If anyone knows what causes this issue and how to get around it correctly I would really appreciate any solution/explanation that could be given.
I don't know the C API, but you have to register namespaces with prefixes in the XPath context and then search for //atom:item. Maybe this pointer to the API doc will lead you on the right track: http://xmlsoft.org/html/libxml-xpath.html#xmlXPathContext Note the reference to "xmlNsPtr * namespaces : Array of namespaces". I think this is what you need to fill, but not knowing the C API, I'm not 100 % sure. Michael Ludwig _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
