Wenn man von Java aus die einzelnen Tags und Werte analysieren will gibt es da andere Methoden als das ganze als String auszulesen und sich dann in endlosen character vergleichen zu ergehen?
Und falls es da nichts dergleichen gibt.
Existiert dann eine methode mit der man einen bestimmten String innerhalb eines anderen Strings oder StringBuffers suchen kann?
Am Besten mit anfangs oder Endindex des gesuchten Strings.
Wenn man von Java aus die einzelnen Tags und Werte analysieren
will gibt es da andere Methoden als das ganze als String
auszulesen und sich dann in endlosen character vergleichen zu
ergehen?
Der Aufbau des JAXP ist zwar nicht wirklich intuitiv, aber du kannst ansich das ganze XML-File schön als Baumstruktur einlesen und durcharbeiten.
Hab da was aus einem bestehenden Programm rausgeholt, wie du die Subnodes einer Node durchgest und in diesem Fall ein bestimmtes Attribut rausholst.
for ( int j = 0; j
Das einlesen ist ziemlich viel Code (hauptsächlich wegen der vielen verschiedenen Exceptions, ich kopiere dir auch hier einfach was aus einem bestehenden Programm:
if ( sXML == "" )
throw new RuntimeException( "Listener(): Please define an XML file." );
// Objekte für das Parsen des XML-Files
DocumentBuilderFactory oFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder oBuilder;
XmlDocument oDoc;
try
{
// XML-File parsen und Root-Element speichern
oBuilder = oFactory.newDocumentBuilder();
// File-Objekt für XML-File erzeugen
File oFile = new File( sXML );
// Überprüfen ob File existiert
if ( ! oFile.exists() )
{
System.out.println( "CommBase(): Specified XML file not found." );
throw new ESACException( ErrorFlag.INITIALIZATION\_ERROR, "Specified XML file not found." );
}
// XML-File parsen
oDoc = (XmlDocument)( oBuilder.parse( oFile )) ;
m\_oRoot = (Element)oDoc.getDocumentElement();
// Name des Logfiles aus dem XML File parsen
String sLogFile = m\_oRoot.getAttribute( "Logfile" );
...
}
// Die Folgenden Exceptions werden vom Parser geworfen und können
// zum debuggen des XML-Files verwendet werden
catch ( SAXParseException spe )
{
String sError = "\n\*\* Parsing error"
+ ", line " + spe.getLineNumber ()
+ ", uri " + spe.getSystemId ()
+ " " + spe.getMessage();
if (spe.getException() != null)
sError += "\n" + spe.getException().getMessage();
throw writeExLog( new ESACException( ErrorFlag.INITIALIZATION\_ERROR, "SAXParseException: " + sError ) );
}
catch ( SAXException sxe )
{
Exception x = sxe;
if (sxe.getException() != null)
x = sxe.getException();
throw new ESACException( ErrorFlag.INITIALIZATION\_ERROR, "SAXException: " + x.getMessage() );
}
catch ( ParserConfigurationException pce )
{ throw writeExLog( new ESACException( ErrorFlag.INITIALIZATION\_ERROR, "ParserConfigurationException: " + pce.getMessage() ) ); }
catch ( IOException ioe )
{ throw writeExLog( new ESACException( ErrorFlag.INITIALIZATION\_ERROR, "IOException: " + ioe.getMessage() ) ); }
Grüße, Robert