EXSD auslesen mit XPath und JDOM

Status
Nicht offen für weitere Antworten.

thomet

Aktives Mitglied
Hy,
ich möchte eine exsd datei auslesen (xml aufbau) ... bis jetzt hat das eigentliche auslesen von xml datein bei mir wunderbar funktioniert. hab dazu jdom und xpath benutzt.

nun möchte ich halt ne xml datei auslesen die zb so aufgebaut ist

Code:
<?xml version='1.0' encoding='UTF-8'?>

<schema targetNamespace="de.thomet.imagetool" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="de.thomet.imagetool" id="imagetool.interfaces.News" name="News"/>
      </appinfo>
      <documentation>
         [Enter description of this extension point.]
      </documentation>
</annotation>
...

hab folgendes gemacht an der stelle von xpath:
Code:
xpath = XPath.newInstance( "/annotation/appinfo/meta.schema" );
xmlBaum = xpath.selectNodes( doc );
			
for ( Object objPlugin : xmlBaum) {
	Element plugin = (Element) objPlugin;
	String pl = plugin.getAttribute("id").getValue();
	System.out.println(pl);
}

also ich möchte im endefekt in pl das haben = tool.interfaces.News ..

ja nun bekomme ich keine fehlermeldung und in pl ist auch nix drinn... ich weiß net warum
könnt ihr mir eventuell helfen..

(ich vermute das es was mit diesem . in meta.schema zu tuhen hat.. aber das ist nur speckuliert)
 
Lass dir doch mal alle Kindsknoten deines gefundenen Knotens objPlugin ausgeben, damit du sicher sein kannst, daß du auch den richtigen Knoten gefunden hast.
Der Xpath Ausdruck sieht korrekt aus.
 
nen kleinen fehler ab ich eben selber gefunden.. jedoch hilft der trozdem net weiter: (das schema davor hat noch gefehlt)
Code:
xpath = XPath.newInstance( "/schema/annotation/appinfo/meta.schema" );

und die for schleife wird garnicht erst ausgeführt.. also muß xmlBaum wo nix enthalten sein
 
Dann probier es mal so:

Code:
xpath = XPath.newInstance( "//schema//annotation//appinfo//meta.schema" );
 
hab ich probiert.. bringt leider auch nix

wie gesagt hab ma die vermutung das es mit dem . zusammen hängt... kann das sein das er probleme macht
 
Kann schon sein. Vielleicht muß man den maskieren. Ersetz den Elementnamen doch mal durch metaschema.
 
hab mit eben ma so nen xpath tester besort... und mitbekommen das der netma /schema einlesen kann.. also muß was mit dem xml dokument sein.. aber was?
 
Ist doch vielleicht sinnvoller wenn du dafür die Eclipse Klassen verwendest, oder? Eclipse muss das Schema schließlich auch verstehen und dafür wird sicherlich eine Public API im PDE angeboten.
 
ok es liegt nicht am java code sonder an der xml datei:
Code:
<schema targetNamespace="de.thomet.imagetool" xmlns="http://www.w3.org/2001/XMLSchema">
wenn ich diese so ändere dann geht es
Code:
<schema targetNamespace="de.thomet.imagetool" xmlns:irgendwas="http://www.w3.org/2001/XMLSchema">
....

mit viel rumgespiele und probieren habe ich nun das erreicht was ich will mit folgenden xpath befehl
Code:
/*[local-name()='schema']/*[local-name()='annotation']/*[local-name()='appinfo']/*[local-name()='meta.schema']
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben