Un exemple autonome de test unitaire pour comprendre comment fonctionne le Template Jaxp13XPathTemplate du framework Spring . Cela sert à ça aussi les tests
public class XpathSimpleTest { private String xmlBody = "<root\n" + "xmlns:h=\"http://www.w3.org/TR/html4/\"\n" + "xmlns:f=\"http://www.w3schools.com/furniture\">\n" + "\n" + "<h:table>\n" + " <h:tr>\n" + " <h:td>Apples</h:td>\n" + " <h:td>Bananas</h:td>\n" + " </h:tr>\n" + "</h:table>\n" + "\n" + "<f:table>\n" + " <f:name>African Coffee Table</f:name>\n" + " <f:width>80</f:width>\n" + " <f:length>120</f:length>\n" + "</f:table>\n" + "\n" + "</root>"; @org.junit.Test public void exampleXPathTemplate() throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, java.io.IOException { org.w3c.dom.Document doc = null; // string xml en Document javax.xml.parsers.DocumentBuilder db; javax.xml.parsers.DocumentBuilderFactory factory = javax.xml.parsers.DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); db = factory.newDocumentBuilder(); java.io.InputStream is = new java.io.ByteArrayInputStream(xmlBody.getBytes()); doc = db.parse(is); // get namespace as Hasmap<localName, URI> java.util.HashMap<String, String> namespaces = new java.util.HashMap<String, String>(); for (int i = 0; i < doc.getDocumentElement().getAttributes().getLength(); i++) { String localName = doc.getDocumentElement().getAttributes().item(i).getLocalName(); String textContent = doc.getDocumentElement().getAttributes().item(i).getTextContent(); namespaces.put(localName, textContent); } // Requete Xpath javax.xml.transform.dom.DOMSource domSource = new javax.xml.transform.dom.DOMSource(doc); org.springframework.xml.xpath.XPathOperations template = new org.springframework.xml.xpath.Jaxp13XPathTemplate(); ((org.springframework.xml.xpath.Jaxp13XPathTemplate) template).setNamespaces(namespaces); junit.framework.Assert.assertEquals(" La valeur root/f:table/f:length ", "120", template.evaluateAsString("root/f:table/f:length", domSource)); junit.framework.Assert.assertEquals(" Un path root/f:table/f:pathNexistePas ramène ", "", template.evaluateAsString("root/f:table/f:pathNexistePas", domSource)); } }