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