Java tutorial
//package com.java2s; //License from project: Apache License import java.util.ArrayList; import javax.xml.namespace.QName; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { public static final String XPATH_FACTORY = "net.sf.saxon.xpath.XPathFactoryImpl"; public static ArrayList<String> getNodeListAttValAsStringCols(final String xPath, final Node node, final String[] attrNames, final String sep) throws Exception { ArrayList<String> retV = new ArrayList<String>(); String locSep = " "; if (sep != null) { locSep = sep; } int aNamesL = attrNames.length; if (aNamesL > 0) { NodeList nl = getNodesListXpathNode(xPath, node); int l = nl.getLength(); Element e = null; String val = ""; for (int i = 0; i < l; i++) { e = (Element) nl.item(i); if (e.getNodeType() == Node.ELEMENT_NODE) { StringBuilder sb = new StringBuilder(); for (int y = 0; y < aNamesL; y++) { sb.append(e.getAttribute(attrNames[y])); if (y < aNamesL - 1) { sb.append(locSep); } } val = sb.toString(); if (val != null && val.length() > 0) { retV.add(val); } } } } return retV; } public static NodeList getNodesListXpathNode(final String xPath, final Node node) throws Exception { return (NodeList) getNodesListXpath(xPath, node, "", "", XPathConstants.NODESET); } /** * * @param xPathS * @param node * @param nsuri * @param pre * @param returnType * @return Return type is one of XPathConstants .BOOLEAN, .NODE, .NODESET, * .NUMBER, .STRING * @throws Exception */ public static Object getNodesListXpath(final String xPathS, final Node node, final String nsuri, final String pre, final QName returnType) throws Exception { Object matches = null; System.setProperty("javax.xml.xpath.XPathFactory:" + XPathConstants.DOM_OBJECT_MODEL, XPATH_FACTORY); XPathFactory xpathFactory = XPathFactory.newInstance(XPathConstants.DOM_OBJECT_MODEL); XPath xpath = xpathFactory.newXPath(); XPathExpression xpe = xpath.compile(xPathS); matches = xpe.evaluate(node, returnType); return matches; } }