Ich will einen XML Importer in Java schreiben, der ein XML File einliest (das aus einem XML Exporter stammt, mit Java schon geschrieben wurde und aus einem Hauptprogramm die Attribute speichert die der Benutzer auswählt) und dann dort die Werte dem XML Code entsprechend weiter verwenden kann.
Ich habe schon ein Programm geschrieben, nur das Problem, dass er nicht nur den Wert der zwischen den XML Tags gespeichert ist ausgibt, sondern auch auch welcher Typ es ist, was aber für meinen Zweck total unnötig ist und ich deswegen nicht brauchen kann.
Alles anzeigen
Er gibt mir dann wenn ich folgende XML Datei habe
Alles anzeigen
[#text: 50] aus, wobei ich gerne hätte, dass er mir nur 50 zurück gibt, damit man dann mit dem Wert weiterarbeiten kann. Wie müsste ich das machen, damit das so geht?
Ich habe schon ein Programm geschrieben, nur das Problem, dass er nicht nur den Wert der zwischen den XML Tags gespeichert ist ausgibt, sondern auch auch welcher Typ es ist, was aber für meinen Zweck total unnötig ist und ich deswegen nicht brauchen kann.
Quellcode
- import java.io.*;
- import org.xml.sax.*;
- import org.w3c.dom.*;
- import javax.xml.parsers.*;
- public class XmlImporter
- {
- public static void main(String[] argv)
- {
- try
- {
- // XML File einlesen
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document document = builder.parse( new File( "ausgabe.xml") );
- // Knotenliste lesen um Elementen Tagnamen zu geben
- NodeList ndList = document.getElementsByTagName("Intensitaet"); // argv [0] wenn man es über Eingabe macht
- printNodesFromList( ndList ); //
- }
- //Fehlerbehandlung
- catch( SAXParseException spe )
- {
- System.out.println( "\n** Parsing error, line " + spe.getLineNumber()
- + ", uri " + spe.getSystemId() );
- System.out.println( " " + spe.getMessage() );
- Exception e = ( spe.getException() != null ) ? spe.getException() : spe;
- e.printStackTrace();
- }
- catch( SAXException sxe )
- {
- Exception e = ( sxe.getException() != null ) ? sxe.getException() : sxe;
- e.printStackTrace();
- }
- catch( ParserConfigurationException pce )
- {
- pce.printStackTrace();
- }
- catch( IOException ioe )
- {
- ioe.printStackTrace();
- }
- }
- // Hilfsmethoden
- private static void printObjIfVisible( String sValName, Object obj )
- {
- if( null == obj )
- return;
- String s = obj.toString();
- if( null != s && 0 < s.trim().length() && !s.trim().equals( "\n" ) )
- System.out.println( sValName + s );
- }
- public static void printNodeInfos( String sNodeName, Node node )
- {
- if( null != node )
- {
- if( node.hasChildNodes() )
- {
- printObjIfVisible( "", node.getFirstChild() );
- }
- }
- }
- public static void printNodesFromList( NodeList ndList )
- {
- for( int i=0; i<ndList.getLength(); i++ )
- printNodeInfos( "ndList.item("+i+")", ndList.item(i) );
- }
- }
Er gibt mir dann wenn ich folgende XML Datei habe
Quellcode
[#text: 50] aus, wobei ich gerne hätte, dass er mir nur 50 zurück gibt, damit man dann mit dem Wert weiterarbeiten kann. Wie müsste ich das machen, damit das so geht?