I followed the way of this post to select all elements behind divider element, but it is slow with large xml file. XPath select all elements between two specific elements
My code :
for (int i = 1; i <= countDivider; i++) {
NodeList listmember =(NodeList) xpath.evaluate("/*/p[count(preceding-sibling::divider)="+i+"]",
doc, XPathConstants.NODESET);
}
XML file demo:
doc>
<divider />
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
<divider />
<p>text</p>
<p>text</p>
<divider />
<p>text</p>
<divider />
</doc>
I used /*/p[count(preceding-sibling::divider)=i]
but it is slow with large xml file(1000 <divider>
and 12k <p>
).