2016-06-20 24 views
2

Ich arbeite an einem Projekt, in dem xml-Dateien Java-basierten Objekten zugeordnet werden müssen.So ordnen Sie den Inhalt der XML-Datei dem Java-Objekt zu

Ich habe gegoogelt und gefunden JAXB ist Standard-Bibliothek verwendet, um XML-Java und zurück zu XML zuordnen.

Ich arbeite an einer Anwendung, wo viele Datenquelldateien im XML-Format bereitgestellt werden. Und ich möchte bestimmte Eigenschaften aus dieser XML-Datei zur Laufzeit herausfinden. Ein solches Beispiel für XML-Datei ist unten angegeben:

<?xml version="1.0" encoding="UTF-8"?> 
<datasources xmlns="http://www.jboss.org/ironjacamar/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd"> 
<datasource jndi-name="java:jboss/datasources/FDMS_DemoDS" pool-name="FDMS_DemoDS"> 
     <connection-url>jdbc:mysql://localhost:3306/demo?zeroDateTimeBehavior=convertToNull</connection-url> 
     <driver>com.mysql</driver> 
     <pool> 
      <max-pool-size>60</max-pool-size> 
     </pool> 
     <security> 
      <user-name>fduser</user-name> 
      <password>fdms!</password> 
     </security> 
    </datasource> 
</datasources> 

Jetzt möchte ich max-pool-size und connection-url von oben XML-Datei mit Hilfe von Java holen. Ich habe versucht mit JAXB, aber leider habe ich einige Probleme.

Kann mir jemand bei der Zuordnung dieser XML zu Java Object helfen?

+0

Sie können einfache XML-Parser wie JAXP, STAX verwenden, um diese Werte zu holen, anstatt JAXB zu verwenden – Sanjeev

+0

@Sanjeev Danke für schnelle Antwort. Ich will nur nicht Werte retrieve, sondern muss es auch Java-Objekt zuordnen und dieses Objekt weiter verwenden. –

+0

JAXB ist der Weg zu gehen oder Sie können auch xmlbeans verwenden, wenn Sie es wünschen. In beiden Fällen müssen Sie ein funktionierendes Beispiel entwickeln, das Ihr Problem erklären kann. Momentan ist Ihre Frage offen. – Sanjeev

Antwort

0

Wenn Sie nur die XML-Dateien in Java lesen möchten, gibt es viele weitere Optionen. Ich persönlich bevorzuge gewöhnlichen Kocher. Es ist einfach und benutzerfreundlich.

https://commons.apache.org/proper/commons-digester/

Persönlich fühle ich JAXB ein bisschen übertrieben ist, wenn alles, was Sie tun müssen, um die Datei gelesen wird. Bitte beachten Sie, dass der Kocher die XML-Dateien nicht zurückschreiben kann. Benutze es nicht, wenn du XMLs zurückschreiben musst.

+0

Ich möchte nur XML-Datei und nichts anderes lesen und es auf Java-Datei zuordnen. –

+0

Digester ist dafür gebaut. Bitte lesen Sie die Dokumentation durch. Es ermöglicht Ihnen, es einer Datei Ihrer Wahl zuzuordnen. –

0

XPath/jxpath ist die performante Option für Ihren Fall.