Antwort
 
Themen-Optionen Thema durchsuchen
Alt 11.01.2006, 11:05 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 07.10.2005
Beiträge: 23
Standard XML ganz simpel!?

Hallo

..ich bin ein bisschen verwirrt und hoffe, dass mir jemand Klarheit verschaffen kann.
Ich möchte die Daten die ich über einen Socket an einen Java Server schicke in xml verkapseln.
Ist das richtig, dass ich da am besten SAX verwende ...oder hab ich da mit DOM eine bessere Performance ..ich bin mir da nicht sicher, da es keine grossen Datenmengen sind...?

Kann mir jemand erklären oder zumindest einen Link posten, wie man das im simpelsten Fall bewerkstelligt. ...am meisten verwirrt es mich, das überall davon ausgegangen wird, dass das XML aus einem File kommt. ...Wahrscheinlich hab ich einfach ein Brett vor dem Kopf.

Es kann doch nicht sein, dass ich dazu eine ganze Klasse schreiben muss.

Ich hab mir das etwa so vorgestellt:
-XML-String parsen
-Node ansprechen
-Node auslesen
Fertig!

...wäre froh um Klarheit ..bevor mir noch Pickel wachsen
Zero83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.01.2006, 13:02 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.161
Standard

Wenn du schon das Wort "Node" verwendest, dann möchtest du definitiv DOM verwenden.

Code:
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new StringReader("xml"));
Vielleicht musst du den StringReader auch noch in ne InputSource packen, aber das sollte so klappen.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.01.2006, 13:19 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 07.10.2005
Beiträge: 23
Standard

Dankeschän ...ja das klärt dann schon einiges.
...wieso gibt es denn mit SAX keine Nodes ..irgendwie will mir das einfach nicht klar werden.

Nodes hin oder her ...ich möchte einfach meine Daten kapseln, so, dass ich alles aneinanderhängend schicken kann.

Bsp:
<Login><Name>Hansli</Name><PW>asjdflk</PW></Login>

Und das ganze am liebsten noch ohne Verzögerung
Zero83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.01.2006, 14:17 Nach oben    #4
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.161
Standard

SAX ist Event-basierend, d.h. du bekommst z.B. immer dann ein Event, wenn ein neues Element beginnt oder Text geparst wird.
Du bekommst aber keinen Baum, den du bearbeiten könntest, sondern eben immer nur das, was jetzt gerade geparst wurde. Die Daten rausfiltern, die du brauchst, musst du dann selber beim parsen.

Als Beispiel verlinke ich mal nen SAXHandler, den ich für meine IDE geschrieben habe: hier.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 18:26 Nach oben    #5
Neuer Benutzer
 
Registriert seit: 07.10.2005
Beiträge: 23
Standard

ok ... ich blick langsam durch
habe mich nach langem hin und her jetzt für SAX entschieden und mir mal nach Vorgabe einen minimalen parser gebalstelt ... ...leider tut sich da nichts ... nicht mal mehr Fehlermeldungen spuckt er aus.
Eigentlich verhält er sich als würde er das XML gar nicht durchgehen ..nicht mal Anfang und Ende werden auf die Konsole ausgegeben ..wenn ich aber was abändere ..also z.B. das Tag nicht abschliesse ..motz er gleich ...was ja eigentlich doch dafür sprechen würde, dass er was macht.

XML:
<Login password="Passwort" username="Lukas"/>

Aufruf-Code:
PHP-Code:
import javax.xml.parsers.SAXParserFactory;  
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import org.xml.sax.InputSource;
try {
 
interpreter itp = new interpreter();
 
SAXParserFactory factory SAXParserFactory.newInstance();
 
SAXParser parser factory.newSAXParser();
  
parser.parse(new InputSource(new StringReader(line)), itp);
} catch (
Exception e)
  {
   
System.out.println("Fehler:" e);
   
e.printStackTrace(System.out);
  } 
..der interpreter:
PHP-Code:
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
 
public class 
interpreter extends DefaultHandler {
public 
void startDocument() 
{
        
System.out.println("BEGINN DOKUMENT\n");
}
public 
void endDocument ()  
{
 
System.out.println("\nENDE DOKUMENT");
}
public 
void startElement(String tagnameAttributes attrsthrows SAXException {
 
System.out.println("Juuhuuu");
 
System.out.println(tagname);
 if (
attrs != null) {
  for (
int i 0attrs.getLength (); i++) {
   
System.out.println(attrs.getName(i));
   
System.out.println(attrs.getValue(i)); 
  }
 }
}

public 
void endElement(String tagnamethrows SAXException {
 
System.out.println("</"+tagname+">");



..ich weiss nicht ob ich übermüdet oder einfach sonst nicht so ganz durchsehe ...wäre nett wenn mir jemand kurz auf die Sprünge helfen könnte.
Zero83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 18:47 Nach oben    #6
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.161
Standard

Vergleiche mal:
Code:
public void endElement(String uri, String localName, String qName) throws SAXException
Mit:
Code:
public void endElement(String tagname) throws SAXException
Und:
Code:
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
Mit:
Code:
public void startElement(String tagname, Attributes attrs) throws SAXException
Wie's bei den anderen Methoden ist weiß ich nicht, aber ich fürchte da verhält sich das ähnlich.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 19:54 Nach oben    #7
Neuer Benutzer
 
Registriert seit: 07.10.2005
Beiträge: 23
Standard

ja du hast natürlich recht ....und booaaa hammer es funktioniert
Danke für die Hilfe
Zero83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
DB Backup als XML im ZIP Archiv ex³ PHP-Programmierung 4 13.09.2007 14:17
Bug im PEAR XML Parser? ex³ PEAR, PECL und Frameworks 11 15.02.2007 14:51
XML aus Datenbank lesen, verarbeiten Robinson HTML, XML und CSS 5 27.12.2005 20:30
xml parsing nove HTML, XML und CSS 10 16.07.2005 07:43
XML Schema GUI Engine (JAXFront) spor Nachrichten 2 05.08.2004 17:27


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45