Hello Apache Team,
I recently began to use batik to parse svg images but i have some issues to get a specified tag. Code : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 package batik.test; import java.io.File; import java.io.IOException; import javax.xml.xpath.XPathExpressionException; import org.apache.batik.dom.AbstractDocument; import org.apache.batik.dom.svg.SAXSVGDocumentFactory; import org.apache.batik.util.XMLResourceDescriptor; import org.w3c.dom.Node; import org.w3c.dom.svg.SVGDocument; import org.w3c.dom.xpath.XPathNSResolver; import org.w3c.dom.xpath.XPathResult; public class CreateDocFromSVGFile { public static void main(String[] args) throws XPathExpressionException { try { String parser = XMLResourceDescriptor.getXMLParserClassName(); SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser); File file = new File("C://SVGs_input//figure_text.svg"); String uri = file.toURI().toString(); SVGDocument svgDocument = f.createSVGDocument(uri); AbstractDocument ab = (AbstractDocument) svgDocument; XPathNSResolver resolver = ab.createNSResolver(ab.getDocumentElement()); XPathResult result = (XPathResult) ab.evaluate("//text", svgDocument.getDocumentElement(), resolver, XPathResult.ANY_TYPE, null); Node node = result.iterateNext(); while (node != null) { System.out.println("<" + node.getNodeName() + "> " + node.getTextContent()); node = result.iterateNext(); } } catch (IOException ex) { ex.printStackTrace(); } } } The query "//*" return all the tags but as soon as I try to get something else like "//title" or "//text", result.iternateNext() returns nothing. I know that the problem comes from the default namespace (xmlns="http://www.w3.org/2000/svg") and I succeeded getting what I wanted with jdom with the expression "//svg:text" but it doesn't work with batik. Here is the svg sample : Citation: <?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="200"> <title>Exemple simple de figure SVG</title> <desc>Cette figure est constituée d'un rectangle, d'un segment de droite et d'un cercle.</desc> <rect width="100" height="80" x="0" y="70" fill="green" /> <line x1="5" y1="5" x2="250" y2="95" stroke="red" /> <circle cx="90" cy="80" r="50" fill="blue" /> <text x="180" y="60">Un texte</text> <text x="180" y="60">Un autre texte</text> </svg> And the result with "//*" : Citation: svg title desc rect line circle text text Thank you in advance