Puedes mirar mi anterior answer para algo relacionado.
Básicamente utilicé JXpath y Xerces, así como Dom4J y javax. Puedo decir con confianza por mi experiencia que VTD-XML es la más rápida de estas opciones.
Hay muchas otras preguntas sobre el uso de VTD-XML en SO si desea buscar.
EDIT:
bien, así que basado en su comentario el fragmento de código sería algo como esto:
VTDGen vg = new VTDGen();
AutoPilot ap = new AutoPilot();
int i;
ap.selectXPath("/root/device/modelname");
if (vg.parseFile(PATH_TO_FILE,true)){
VTDNav vn = vg.getNav();
ap.bind(vn); // apply XPath to the VTDNav instance
// AutoPilot moves the cursor for you
while((i=ap.evalXPath())!=-1){
System.out.println("the value is: " + vn.toNormalizedString(vn.getText()));
}
}
Para el siguiente código XML:
<root>
<blah>foo</blah>
<device>
<modelname>xbox</modelname>
</device>
<blah>bar</blah>
<device>
<modelname>wii</modelname>
</device>
<blah/>
</root>
la salida será:
the value is: xbox
the value is: wii
Puede tomarlo desde aquí ...
Quizás solo esté utilizando la API de forma inapropiada. Una nueva API no es una bala mágica. Muéstranos tu código, tal vez podamos sugerir mejoras. – skaffman
Me pueden abuchear aquí, pero ¿ha intentado usar expresiones regulares? Regexes no funcionará para todos los tipos de archivos xml, pero si la estructura es bastante básica y está seguro de que las expresiones regulares no causarán problemas, podría acelerar el proceso. – Augusto
@skaffman, lo siento, no puedo compartir el código debido a las políticas de la compañía – Nohsib