[jdom-interest] Problem using XPath with Namespaces

Laurent Bihanic laurent.bihanic at atosorigin.com
Thu Nov 13 09:51:23 PST 2003


There is no default namespace in XPath. Hence, all namespaces must have a 
prefix in the XPath expressions. The prefix does not have to match the one in 
the document.

XPath journalTitleXPath = 

should work.


Benjamin Kopic wrote:
> I am having some problem using JDOM XPath class with Namespaces. The 
> following JUnit test case code fails due to the value returned by 
> 'selectSingleNode()' is always null:
> XPath journalTitleXPath = 
> XPath.newInstance("/doi_batch/body/journal/journal_metadata/full_title");
> journalTitleXPath.addNamespace(Namespace.getNamespace(JournalConstants.XML_DOI_BATCH_A_XMLNS_VAL));
> journalTitleXPath.addNamespace(Namespace.getNamespace(
> JournalConstants.XML_DOI_BATCH_A_XMLNS_XSI,
> JournalConstants.XML_DOI_BATCH_A_XMLNS_XSI_VAL));
> Element fullTitle = (Element) journalTitleXPath.selectSingleNode(doc);
>    // the line below fails the assertion, i.e. fullTitle is null value
> assertNotNull(fullTitle);
> assertEquals(expectedJournalTitle, fullTitle.getText());
> }

More information about the jdom-interest mailing list