package testcode.xpath; import org.apache.xml.security.utils.JDKXPathAPI; import org.apache.xml.security.utils.XPathAPI; import org.apache.xml.security.utils.XalanXPathAPI; import org.springframework.web.bind.annotation.RequestParam; import org.w3c.dom.Document; public abstract class XPathApacheXmlSec { public void main(@RequestParam("test") String input) throws Exception { Document doc = XmlUtils.loadDoc("/testcode/xpath/data.xml"); String query = "//groups/group[@id='" + input + "']/writeAccess/text()"; XPathAPI api1 = getXPathAPI(); api1.evaluate(null,null,query,null); api1.selectNodeList(null,null,query,null); JDKXPathAPI api2 = getJDKXPathAPI(); api2.evaluate(null,null,query,null); api2.selectNodeList(null,null,query,null); XalanXPathAPI api3 = getXalanXPathAPI(); api3.evaluate(null,null,query,null); api3.selectNodeList(null,null,query,null); } public abstract XPathAPI getXPathAPI(); public abstract JDKXPathAPI getJDKXPathAPI(); public abstract XalanXPathAPI getXalanXPathAPI(); }