* @return the requested nodes of the XML file.
*/
public static List< Element > parse( String xml, String requestedNodes ) {
if( StringUtils.isNotEmpty( xml ) && StringUtils.isNotEmpty( requestedNodes ) ) {
Set< Element > readed = new HashSet< Element >();
SAXBuilder builder = new SAXBuilder();
try {
Enumeration< URL > resources = XmlUtil.class.getClassLoader().getResources( xml );
while( resources.hasMoreElements() ) {
URL resource = resources.nextElement();
log.debug( "reading " + resource.toString() );
Document doc = builder.build( resource );
XPathFactory xpfac = XPathFactory.instance();
XPathExpression< Element > xp = xpfac.compile( requestedNodes, Filters.element() );
readed.addAll( xp.evaluate( doc ) ); // filter out repeated items
}
return new ArrayList< Element >( readed );