On Wed, Sep 21, 2011 at 9:54 AM, Shamik Bandopadhyay <sham...@gmail.com> wrote:
> Hi,
>
>  I'm having an issue in parsing the following XML using jxpath. Here's the
> sample XML.
>
>  <?xml version="1.0" encoding="UTF-8"?>
> <feed xmlns="http://www.w3.org/2005/Atom"; xmlns:media="
> http://search.yahoo.com/mrss/"; xmlns:openSearch="
> http://a9.com/-/spec/opensearchrss/1.0/"; xmlns:gd="
> http://schemas.google.com/g/2005"; xmlns:yt="
> http://gdata.youtube.com/schemas/2007";>
>  <entry>
>    <id>http://gdata.youtube.com/feeds/api/videos/P1lDDu9L5YQ</id>
>    <published>2010-09-20T17:41:38.000Z</published>
>   </entry>
>
>    <entry>
>       <id>http://gdata.youtube.com/feeds/api/videos/P1lDDu9L5YQ</id>
>         <published>2010-09-20T17:41:38.000Z</published>
>      </entry>
> </feed>
>
>
> I'm trying to read the contents of <entry> usig xpath. Heres my code
> snippet.
>
> String test = "the_xml_example_above";
>
> ByteArrayInputStream is = new ByteArrayInputStream(test.getBytes("UTF-8"));
> DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
> DocumentBuilder db = dbf.newDocumentBuilder();
> Document doc22 = db.parse(is);
>
> JXPathContext ctx = JXPathContext.newContext(doc22);
> List nodes = ctx.selectNodes("/feed/entry");
>
>  Here the list is always 0. Now, if I remove the namespace attributes from
> <feed>, jxpath is able to resolve the <entry> nodes. Not sure what's the
> reason behind this.
>
> I'll appreciate if someone cane provide pointers to this issue.

You've most likely identified your issue yourself.  It should work for
you to choose a prefix to use in your xpath queries, and register that
prefix to the Atom namespace before querying.

Matt

>
> -Thanks
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to