I have run into a problem with part of my code ie. where I use XPath. For some reason its returning the portion of the node tree from where I make my request. eg.
Document dom = createDomFromXML(notificationXML);
String notificationBatchXPath = notifications/notification[@name='BATCH_NOTIFICATION'];
//notifications/notification[@name='BATCH_NOTIFICATION']
Node nodeBatch = XPathAPI.selectSingleNode((Node)dom, notificationBatchXPath);
where notificationXML is notifications.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<notifications>
<notification name='BATCH_NOTIFICATION'>
<columns>
<column>field_id</column>
<column>old_value</column>
<column>new_value</column>
</columns>
</notification>
<notification name='NEXT_WORKFLOW'>
<columns>
<column>field_id</column>
<column>old_value</column>
</columns>
</notification>
<notification name='HISTORY_WORKFLOW'>
<columns>
<column>field_id</column>
</columns>
</notification>
</notifications>
so in this request I would expect
<columns>
<column>field_id</column>
<column>old_value</column>
<column>new_value</column>
</columns>
but I get
<columns>
<column>field_id</column>
<column>old_value</column>
<column>new_value</column>
</columns>
<columns>
<column>field_id</column>
<column>old_value</column>
</columns>
<columns>
<column>field_id</column>
</columns>