%@page import="org.w3c.dom.*,org.apache.xpath.*,javax.xml.parsers.*" %>
XPath-prøve fra Java
<%
String udtryk = request.getParameter("udtryk");
if (udtryk == null) udtryk = "galleri/person[@id=2]/fornavn/text()";
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// find filen persongalleri.xml i samme mappe som denne JSP-side
String side = application.getRealPath(request.getServletPath());
String fil = side.substring(0, side.lastIndexOf('/')) + "/persongalleri.xml";
// Fortolk XML-koden til et DOM-træ
Document træ = factory.newDocumentBuilder().parse("file:"+fil);
// Lav liste af resultater fra XPath-udtrykket
NodeList res = XPathAPI.selectNodeList(træ, udtryk);
%>'<%= udtryk %>' passer på <%= res.getLength() %> element(er):
<%
// Gennemløb listen og udskriv
for (int i = 0; i < res.getLength(); i++) {
out.print(res.item(i).getNodeValue()+"
");
}
} catch (Exception e) {
e.printStackTrace();
out.print("Der opstod et problem: "+e+"
");
}
%>
Prøv et andet XPath-udtryk
f.eks.:
galleri/person[@id=2]/fornavn/text()
//*/titel/text()
//*/isbn/../titel/text()
galleri/person/værker/værk[@type="bog"]/titel/text()
galleri/person/værker/værk[@type="hjemmeside"]/titel/text()
Kig evt. på XML-filen.