class MySaxParser extends DefaultHandler {
private int ile_walut=0;
private int flaga=0, flaga2=0, flaga3=0;
private int pozycja=0, flaga_data=0;
public int zmienna_szerokosc;
public Integer zmienna_y;
public int zmienna_x;
public int zmienna_wysokosc;
private int sciezka;
public String sciezeczka;
/////glowny parser
public void ParsowanieXml() {
//wywolanie funkcji PobierzUrl ktora poszukuje linka do xml na stronie nbp.pl
PobierzUrl x= new PobierzUrl();
String adres = x.pokazURL();
System.out.println("POBIERAM XML ZE STRONY: " + adres);
String uri = adres;
try {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setValidating(false);
parserFactory.setNamespaceAware(false);
MySaxParser MySaxParserInstance = new MySaxParser();
SAXParser parser = parserFactory.newSAXParser();
parser.parse(uri, MySaxParserInstance);
}
catch(IOException ex) {
ex.printStackTrace();
}
catch(SAXException ex) {
ex.printStackTrace();
}
catch(ParserConfigurationException ex) {
ex.printStackTrace();
}
catch(FactoryConfigurationError ex) {
ex.printStackTrace();
}
}
//funkcje paresera sax
public void characters(char[] ch, int start, int length)
throws SAXException {
String s = new String(ch, start, length);
if(sciezka==1)
{
sciezeczka=s;
System.out.println("sciekza do pliku: " +sciezeczka);
}
if(flaga==1&&flaga2==1&&flaga3==1){
if (!s.startsWith("\n"))
{
if(pozycja==0)
{
zmienna_x = Integer.valueOf(s);
}
if(pozycja==1)
{
zmienna_y = Integer.valueOf(s);
}
if(pozycja==2)
{
zmienna_wysokosc = Integer.valueOf(s);
}
if(pozycja==3)
{
zmienna_szerokosc = Integer.valueOf(s);
}
}
}
}
public void endDocument() throws SAXException {
System.out.println("\n...PARSOWANIE plkiu zakonczone");
System.out.println(sciezeczka);
}
public void endElement(String uri, String localName, String qName)
throws SAXException {
if(sciezka==1) sciezka=0;
if(flaga==1&&flaga2==1&&qName.equals("x")){
flaga3=0;
pozycja=1;
}
if(flaga==1&&flaga2==1&&qName.equals("y")){
flaga3=0;
pozycja=2;
}
if(flaga==1&&flaga2==1&&qName.equals("wysokosc")){
flaga3=0;
pozycja=3;
}
if(flaga==1&&flaga2==1&&qName.equals("szerokosc")){
flaga3=0;
pozycja=4;
}
//konczy element - pozycja - wpisuje dane o walucie do bazy danych i wyswietla na ekranie
if(qName.equals("pozycja")&&flaga2==1) {
//wypisuje na ekran kursy
System.out.println("x: " + zmienna_x);
System.out.println("y: " +zmienna_y);
System.out.println("wysokosc: " +zmienna_wysokosc);
System.out.println("szerokosc: " +zmienna_szerokosc);
//przygotowuje zmienne na nastepna pozycje
flaga = 0;
flaga2=0;
pozycja=0;
}
}
public void startDocument() throws SAXException {
System.out.println("PARSOWANIE rozpoczete...\n");
}
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException
{
if(qName.equals("sciezka"))
sciezka=1;
if(qName.equals("pozycja")) {
//ile_walut++;
flaga=1;}
if(flaga==1){
//if(ile_walut>1&&ile_walut<10){ //ktore kursy maja byc wyswietlone
flaga2=1;
}
if(flaga==1&&flaga2==1&&(qName.equals("x")||qName.equals("y")||qName.equals("wysokosc")||qName.equals("szerokosc"))){
flaga3=1;
}
}
public String zwrot()
{
String dana = sciezeczka;
System.out.println(dana);
return sciezeczka;
}
}
To jest klasa parsera
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
MySaxParser parsowanie = new MySaxParser();
parsowanie.ParsowanieXml();
MySaxParser x = new MySaxParser();
String adres = x.zwrot();
System.out.println("POBIERAM XML ZE STRONY: " + adres);
}
Jak nacisne przycisk to wtedy odpali mi parsowanie
To jest kod tego malutkiego programiku.