Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Antwort
 
Themen-Optionen
Alt 11.01.2006, 11:05   Nach oben    #1
Zero83
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.01.2006, 13:02   Nach oben    #2
pago
Erfahrener Benutzer
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.01.2006, 13:19   Nach oben    #3
Zero83
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.01.2006, 14:17   Nach oben    #4
pago
Erfahrener Benutzer
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 18:26   Nach oben    #5
Zero83
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 18:47   Nach oben    #6
pago
Erfahrener Benutzer
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.083
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 19:54   Nach oben    #7
Zero83
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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

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

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are 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 +2. Es ist jetzt 10:08 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

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