Genauso wie das Validieren von XML-Dateien gegen Schemas ist auch das Auslesen von Werten aus XML-Dateien mittels XPath sehr gut im Internet dokumentiert: z.B. The Java XPath API oder Java, XPath und Namespaces.
Ich erweitere mal mein kleines PlantBuilder-Beispiel um eine einfache Auflistung der IDs aller in der XML-Datei enthaltenen Module:
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(new PPNamespaceContext());
String xModules = "/pp:ProductionPlant/pp:Modules/pp:Module";
NodeList modules = (NodeList) xpath.evaluate(xModules, doc, XPathConstants.NODESET);
Wichtig ist, dass doc Namespace-aware eingelesen wurde (siehe Zeile 47 im Quelltext) und ein NamespaceContext angelegt wird, da die zu verarbeitende XML-Datei Namensräume verwendet.
Download
Das erweiterte PlantBuilder-Beispiel inkl. benötigter import-Anweisungen und NamespaceContext gibt es hier zum Download: PlantBuilder2.
Und so wird es ausgeführt: