ich komm mal wieder mit nem ganz einfachen einstiegs-problem nicht weiter.
habe folgende XML datei:
der java code ist:
ich komme einfach nicht drauf, wie ich nun den inhalt / text ausgeben kann, also zb "erlenkötter" oder "helmut".
mit folgendem code kann man die attribute ausgeben, aber ich finde irgend wie nirgends eine möglichkeit obiges auszugeben.
dachte zuerst ich muss es mit der methode "characters" machen, aber bringe es nicht zu stande. auch in der APi schaffe ich es nicht, die lösung zu finden.
kann mir da jemand kurz weiterhelfen?
habe folgende XML datei:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<buch
auflage="2">
<titel>C für Windows</titel>
<autor>
<name>Erlenkötter</name>
<vorname>Helmut</vorname>
</autor>
<autor>
<name>Reher</name>
<vorname>Volker</vorname>
</autor>
<verlag>Rowohlt</verlag>
<isbn>3-499-19234-9</isbn>
<seiten>240</seiten>
</buch>
der java code ist:
Code:
package test;
import java.io.*; // 1
import org.xml.sax.*; // 2
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
public class SAX extends DefaultHandler // 3
{
static String dateiName; // 4
static String elementName;
//---- main ----
public static void main(String args[]) // 5
{
if (args.length != 2) // 6
{
System.err.println // 7
("Aufruf: SaxBsp01 <dateiname> <element>");
System.exit(1);
}
dateiName = args[0]; // 8
elementName = args[1];
DefaultHandler handler = new SAX(); // 9
}
//---- constructor ----
public SAX() // 10
{
SAXParserFactory factory = // 11
SAXParserFactory.newInstance();
factory.setNamespaceAware(true); // 12
try // 13
{
SAXParser saxParser = // 14
factory.newSAXParser();
saxParser.parse // 15
( new File(dateiName), this);
} catch (Throwable t) { // 16
t.printStackTrace(); // 17
}
System.exit(0); // 18
}
//----------------------------------------------
//Überschreibe Methoden des SAX DocumentHandler
//----------------------------------------------
public void startDocument() // 19
throws SAXException
{
System.out.println("Dokumentanfang"); // 20
}
public void endDocument()
throws SAXException
{
System.out.println("\nDokumentende");
}
public void startElement // 21
(String namespaceURI,
String lName, // 22
String qName,
Attributes attrs) // 23
throws SAXException
{
if (lName.equals(elementName)) // 24
{
System.out.println("\nELEMENT: "+lName);
for(int x=0; x<attrs.getLength(); x++) // 25
{
String localName= // 26
attrs.getLocalName(x);
System.out.print(" ATTR : "); // 27
System.out.println(localName);
System.out.println
(" "+attrs.getValue(x));
}
}
}
}
ich komme einfach nicht drauf, wie ich nun den inhalt / text ausgeben kann, also zb "erlenkötter" oder "helmut".
mit folgendem code kann man die attribute ausgeben, aber ich finde irgend wie nirgends eine möglichkeit obiges auszugeben.
dachte zuerst ich muss es mit der methode "characters" machen, aber bringe es nicht zu stande. auch in der APi schaffe ich es nicht, die lösung zu finden.
kann mir da jemand kurz weiterhelfen?