Zurück   Entwickler-Forum > Java™ > Java™ + XML

Antwort
 
Themen-Optionen Ansicht

javax.xml.xpath.XPath - keine Ergebnisse
Alt 08.02.2010, 14:12   #1
JackPack
Neuer Benutzer
 
JackPack ist offline
Registriert seit: 08.02.2010
Beiträge: 1
JackPack befindet sich auf einem aufstrebenden Ast
Standard javax.xml.xpath.XPath - keine Ergebnisse

Hallo Forum,
ich erhoffe mir Hilfe bei der Verarbeitung des folgenden XML-Dokument
mit javax.xml.xpath.XPath.

Mit der Methode selectNodeList(contextNode, xpath, [namespaceNode])
kann ich mit xpath=//* alle Elemente erfassen.
Möchte ich aber ein bestimmtes Element abgreifen, z.B. xpath=//ColorPool/Color, bekommen ich keine Elemente zurückgeliefert.

Meine Vermutung ist, dass die Namensräume das Problem verursachen,
kann aber keine Lösung finden. Das Präfix jdf: ist nur Versuchweise definiert.

Ich wäre für jede Hilfe dankbar.

Code:
<?xml version="1.0" encoding="UTF-8"?><Resources>
<jdf:RunList xmlns:jdf="http://www.CIP4.org/JDFSchema_1_1" Class="Parameter" ID="RNL000_D" Status="Unavailable"/>
<jdf:RunList xmlns:jdf="http://www.CIP4.org/JDFSchema_1_1" Class="Parameter" ID="RNL000_M" Status="Unavailable"/>
<jdf:Layout xmlns:jdf="http://www.CIP4.org/JDFSchema_1_1" Class="Parameter" ID="LAY000" Name="CoverLayout" Status="Unavailable">
<Signature xmlns="http://www.CIP4.org/JDFSchema_1_1" Name="SIG1059600001">
<Sheet Name="SHT1059600001">
<Media BackCoatings="Coated" Brand="Machinegestreken gesatineerd houtvrij WIT" Class="Consumable" DescriptiveName="Machinegestreken gesatineerd houtvrij WIT 520x360 mm 100 grs" Dimension="1474 1020" FrontCoatings="Coated" Grade="1" GrainDirection="LongEdge" ID="PAP351052N2HA" MediaType="Paper" MediaUnit="Sheet" ProductID="PAP351052N2HA" Status="Available" Thickness="110" Weight="100"/>
<Surface Side="Front"/>
</Sheet>
</Signature>
</jdf:Layout>
<jdf:ColorantControl xmlns:jdf="http://www.CIP4.org/JDFSchema_1_1" Class="Parameter" DescriptiveName="Colors of the job" ID="ColorantControl" Status="Available">
<ColorantParams xmlns="http://www.CIP4.org/JDFSchema_1_1">
<SeparationSpec Name="Cyan"/>
<SeparationSpec Name="Magenta"/>
<SeparationSpec Name="Yellow"/>
<SeparationSpec Name="Black"/>
</ColorantParams>
<ColorPool xmlns="http://www.CIP4.org/JDFSchema_1_1" Class="Parameter" DescriptiveName="Colors for the job" ID="ColorPool" Status="Available">
<Color CMYK="1 0 0 0" Name="Cyan"/>
<Color CMYK="0 1 0 0" Name="Magenta"/>
<Color CMYK="0 0 1 0" Name="Yellow"/>
<Color CMYK="0 0 0 1" Name="Black"/>
</ColorPool>
</jdf:ColorantControl>
<jdf:InterpretingParams xmlns:jdf="http://www.CIP4.org/JDFSchema_1_1" Class="Parameter" ID="REPPAP351052N2HAPlate000001" Status="Available">
<Media xmlns="http://www.CIP4.org/JDFSchema_1_1" BackCoatings="Coated" Brand="Machinegestreken gesatineerd houtvrij WIT" Class="Consumable" DescriptiveName="Machinegestreken gesatineerd houtvrij WIT 520x360 mm 100 grs" Dimension="1474 1020" FrontCoatings="Coated" Grade="1" GrainDirection="LongEdge" ID="PAP351052N2HA" MediaType="Paper" MediaUnit="Sheet" ProductID="PAP351052N2HA" Status="Available" Thickness="110" Weight="100"/>
<Media xmlns="http://www.CIP4.org/JDFSchema_1_1" Brand="SuperPlates" Class="Consumable" DescriptiveName="Plate" Dimension="1874 1420" ID="Plate000001" MediaType="Plate" ProductID="Plate000001" Status="Available" Thickness="200"/>
</jdf:InterpretingParams>
<jdf:Media xmlns:jdf="http://www.CIP4.org/JDFSchema_1_1" Class="Consumable" DescriptiveName="ImpoProof" ID="ImpoProof01" MediaType="Paper" Status="Available"/>
<jdf:ExposedMedia xmlns:jdf="http://www.CIP4.org/JDFSchema_1_1" SheetName="SHT1059600001">
<ExposedMedia xmlns="http://www.CIP4.org/JDFSchema_1_1" Side="Front"/>
</jdf:ExposedMedia>
</Resources>
  Mit Zitat antworten

Anzeige

Alt 08.02.2010, 14:18   #2
Christian Marquardt
Forenheld
 
Christian Marquardt ist offline
Registriert seit: 26.02.2003
Beiträge: 9.279
Christian Marquardt befindet sich auf einem aufstrebenden Ast
Standard

Ist der Code dazu zu sehen?
__________________
Christian

________________________________________
C-Ecke
  Mit Zitat antworten

Alt 08.02.2010, 15:03   #3
ramon98
Stammgast
 
ramon98 ist offline
Registriert seit: 12.01.2010
Beiträge: 106
ramon98 befindet sich auf einem aufstrebenden Ast
Standard

Ich rate mal: domFactory.setNamespaceAware(false); fehlt?


Code:
		DocumentBuilderFactory domFactory = 
			DocumentBuilderFactory.newInstance();

		// WICHTIG !!!
		domFactory.setNamespaceAware(false); 
		
		DocumentBuilder builder = domFactory.newDocumentBuilder();
		Document doc = builder.parse("test.xml");
		XPath xpath = XPathFactory.newInstance().newXPath();
		XPathExpression expr = xpath.compile("//ColorPool/Color");

		Object result = expr.evaluate(doc, XPathConstants.NODESET);
		NodeList nodes = (NodeList) result;
		for (int i = 0; i < nodes.getLength(); i++) {
			Node n =  nodes.item(i);
			System.out.println(n.getAttributes().getNamedItem("Name"));
		}
  Mit Zitat antworten

Alt 08.02.2010, 16:30   #4
Christian Marquardt
Forenheld
 
Christian Marquardt ist offline
Registriert seit: 26.02.2003
Beiträge: 9.279
Christian Marquardt befindet sich auf einem aufstrebenden Ast
Standard

Der Code funktioniert einwandfrei

EDIT: Achjeee ist ja gar nicht vom Threadersteller. Vergebliche Mühe...
__________________
Christian

________________________________________
C-Ecke
  Mit Zitat antworten

Alt 08.02.2010, 17:44   #5
ramon98
Stammgast
 
ramon98 ist offline
Registriert seit: 12.01.2010
Beiträge: 106
ramon98 befindet sich auf einem aufstrebenden Ast
Standard

Wenn der Code funktioniert, dann war es doch nicht vergeblich; doppelt hält doch bekanntlich besser

Warten wir mal auf den Thread-Ersteller, ob es bei ihm auch so gut funktioniert.
  Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu



Alle Zeitangaben in WEZ +2. Es ist jetzt 08:07 Uhr.



© 1995–2009 Software & Support Verlag GmbH. Vervielfältigung nur mit Genehmigung des Verlags.