How To Use XPath And Namespaces In VTD-XML?
Join the DZone community and get the full member experience.
Join For FreeThis example shows you how to use XPath to process an XML document in a namespace aware fashion.
/* Input XML
hello world!
*/
import com.ximpleware.*;
public class xpathNs{
public static void main(String[] args) throws Exception{
VTDGen vg = new VTDGen();
AutoPilot ap = new AutoPilot();
int i;
// declareXPathNameSpace associates name space with a prefix
ap.declareXPathNameSpace("ns1","someURL");
ap.selectXPath("/ns1:a/ns1:b/text()");
if (vg.parseFile("d:/java_tutorial_by_code_examples/3/input.xml",true)){
VTDNav vn = vg.getNav();
ap.bind(vn);
// AutoPilot moves the cursor for you, as it returns the index value of the qualified node
while((i=ap.evalXPath())!=-1){
// notice that i always is equal to vn.getCurrentIndex()!!!
System.out.println("the text node index val is "+
i +" the text string ==>"+vn.toString(i));
// below is equivalent to
// vn's cursor is what gets moved by AutoPilot here
System.out.println("the text node index val is " +
i + " the text string ==>" + vn.toString(vn.getCurrentIndex()));
}
}
}
}
VTD-XML
XPath
Opinions expressed by DZone contributors are their own.
Comments