jdom, xml, login-system

derFrank

Mitglied
Hallo zusammen,
da ich in Sachen Java eine ziemliche Niete bin hoffe ich , dass ihr mir bei meinem Problem helfen könnt. Ist denke ich auch keine große Sache, ich bekomme es aber einfach nicht hin.

Bin dabei ein einfaches Login-System zu entwerfen. Aus meiner "Main" werden dabei einfach ein Passwort & ein Benutzername jeweils über eine Text-Box eingelesen und an meine setUser Methode als String übergeben. Als Erstes erzeuge ich ein xml-File, das folgendermaßen aussieht:

[XML]
<?xml version="1.0" encoding="UTF-8" ?>
<user>
<person>
<name>user1</name>
<password>pass1</password>
<token>testToken</token>
</person>
<person>
<name>user2</name>
<password>pass2</password>
<token>testToken</token>
</person>
<person>
<name>user3</name>
<password>pass3</password>
<token>testToken</token>
</person>
</user>
[/XML]
das klappt auch alles ohne Probleme. Bei jeder neuen Anmeldung wird eine neue Person mit name/password/token angelegt.

hier noch der Java Code:

Java:
package anmeldung;

import java.awt.List;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.xml.sax.InputSource;
import org.jdom.xpath.*;

public class Users{

    public void setUser(String benutzer, String passwort) throws JDOMException, IOException{

    SAXBuilder sxbuild = new SAXBuilder();
    InputSource is = new InputSource("C:/Test.xml");
    Document doc = sxbuild.build(is);
    Element root = doc.getRootElement();

    root.addContent(new Element("person").addContent(
            new Element("name").setText(benutzer)).addContent(
            new Element("password").setText(passwort)).addContent(
            new Element ("token").setText("testToken"))
            );


    XMLOutputter outputter = new XMLOutputter();
    FileOutputStream output = new FileOutputStream("C:/Test.xml");
    outputter.output(doc,output);

    }
}

Mein erstes Problem ist, dass ich gerne vor der Zeile 25 (vor der Erzeugung neuer "xml-Elemente") eine if-Abfrage machen möchte, ob nicht bereits ein User mit dem gleichen Namen existiert. Es müssten also alle existierenden user auf den namen abgeglichen werden (<name>user1</name> usw).

Sollte das funktionieren, hab ich im Moment auch noch überhaupt keine Vorstellung darüber, wie ich anhand des XML-Files später jedem User das dazugehörige Passwort zuordnen kann???

Hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe...

Gruß Frank
 

ProgX

Aktives Mitglied
Du kannst doch einfach mit nem XML parser und einer Schleife über das XML File iterieren und die daraus erhaltenen Strings vergleichen. Wenn dann ein User gefunden wurde, checkst du einfach noch das Passwort!

So würde ich das halt machen
 

derFrank

Mitglied
Vielen Dank nochmal für die schnelle Antwort. Wollte nur nochmal auf meine erste Zeile verweisen:"... da ich in Sachen Java eine ziemliche Niete bin...".
Also, ich habe schon ziech Sachen ausprobiert und es nicht hin bekommen. Mir fehlt an dieser Stelle komplett die Erfahrung. Beschäftige mich mit Java erst seit wenigen Wochen. Sorry....
 

eRaaaa

Top Contributor
Deinen zweiten Satz mit dem Password zuordnen habe ich nicht ganz verstanden...
Aber möglich wäre z.B. folgendes:
Java:
	public void setUser(String benutzer, String passwort)
			throws JDOMException, IOException {

		SAXBuilder sxbuild = new SAXBuilder();
		InputSource is = new InputSource("C:/Test.xml");
		Document doc = sxbuild.build(is);
		Element root = doc.getRootElement();
		Element e = exist(benutzer, root);
		if (e == null) {
			//neuen user eintragen
			root.addContent(new Element("person").addContent(
					new Element("name").setText(benutzer)).addContent(
					new Element("password").setText(passwort)).addContent(
					new Element("token").setText("testToken")));

			XMLOutputter outputter = new XMLOutputter();
			FileOutputStream output = new FileOutputStream("C:/Test.xml");
			outputter.output(doc, output);
		} else {
			//gebe userdaten aus oder was auch immer
			printData(e);
		}
	}

	private void printData(Element e) {
		System.out.println("Benutzer: " + e.getChildText("name"));
		System.out.println("Passwort: " + e.getChildText("password"));
		System.out.println("Token: " + e.getChildText("token"));
	}

	public Element exist(String user, Element root) {
		for (Object e : root.getChildren("person")) {
			if (((Element) e).getChildText("name").equals(user)) {
				return (Element) e;
			}
		}
		return null;
	}

Meintest du das so? ;/
 

derFrank

Mitglied
Oh man... vielen vielen Dank eRaaaa. Mir war überhaupt nicht klar wie ich auf dem xml-"Baum" hin und her wandern kann.... Ich sitze wirklich schon den ganzen Tag dran... und dann kommst du. Peinlich das ist.... Nochmals Danke. Muss mir das heut Abend nochmal ganz genau angucken. Aber es funktioniert.
Merci!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JDOM oder SAX XML & JSON 3
Hijo2006 Grundsätzliches zu JDOM 2.x XML & JSON 1
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S JDom XML ein Element hinzufügen. XML & JSON 1
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
J JDOM XMLOutputter getPrettyFormat() XML & JSON 3
H JDOM setAttribute Reihenfolge XML & JSON 3
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
F Aus XML mit JDOM aus Elementattributen Werte rauslesen XML & JSON 4
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
T Dom, Jdom, Sax XML & JSON 8
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
Helgon JDOM schreibt nicht XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
G xml, jdom "Entität wurde referenziert aber nicht deklariert." XML & JSON 4
A XSL und JDom XML & JSON 3
G jdom-Klassen in Eclipse importieren XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S JDOM nur Attribut Name XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
S jdom hasChildren()? XML & JSON 1
T Frage zu getContent unter jdom XML & JSON 6
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
N JDOM: XML einlesen XML & JSON 4
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
lordcarlos jdom zu iso-8859-15 zwingen XML & JSON 4
P jdom XML-Encoding auslesen XML & JSON 12
E JDOM - letzem child Attribut hinzufügen XML & JSON 4
H Schema-Validierung mit JDOM XML & JSON 2
lordcarlos JDOM und entfernen von children XML & JSON 4
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
T jdom.jar als Relativer Pfad in Eclipse einbinden XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
S XML, UTF-8, JDOM und Umlaute XML & JSON 3
E XML - JDOM - Bäume: was würdet ihr hier machen? XML & JSON 11
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
T JDOM Bibiliothek XML & JSON 3
K JDOM vs. DOM, Schnittstellen XML & JSON 5
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
0x7F800000 jdom mit xml.transform inkompatibel, was soll ich nehmen? XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A JDOM und Sonderzeichen < > XML & JSON 17
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
S Jdom+java webstart XML & JSON 4
K html -> cyberneko -> xml -> jdom . XML & JSON 3
I JDom Text ändern XML & JSON 4
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
C XPath in JDOM klappt nicht XML & JSON 2
S Harte Nuss mit XML und JDOM XML & JSON 2
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
B jdom: getChildren() problem XML & JSON 4
T Bild in XML per JDOM XML & JSON 4
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
T Elemente zählen mit JDOM in XML XML & JSON 7
B jdom document aus string erzeugen? XML & JSON 1
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
T XML mit JDOM auslesen => langsam? XML & JSON 7
B jdom outputter ohne attribute XML & JSON 2
C XML encoding UTF-8 und JDOM XML & JSON 4
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
R key aus xml lesen mittels jdom XML & JSON 5
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3
X JDOM SAXBuilder Validationschema - Problem XML & JSON 8
G einzelne tags mit jdom auslesen XML & JSON 4
F XML ( ca. 280 MB) JDom & SAXBuilder lesen = OutOfMemoryE XML & JSON 4
K JDOM SAXBuilder einlesen XML & JSON 6
S Ausgabe "asXML" mit Jdom XML & JSON 2
B Element an bestimmter Stelle einfügen (JDOM) XML & JSON 8
G XML mit JDOM ausgeben [Klappe die 1Mio.ste] XML & JSON 2
F XML mit JDOM auslesen XML & JSON 2
D JDOM auf den PC machen XML & JSON 6
J JDOM Unicode XML & JSON 2
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
P JDOM Werte verändern XML & JSON 4
S OutOfMemory mit JDOM XML & JSON 6
S org.jdom.document in String umwandeln. XML & JSON 2
M ISO-8859-1 >> UTF-8 + JDOM + Verwirrung. XML & JSON 2
J [Newbie] [JDOM] Element aus XML entfernen klappt nicht XML & JSON 4
J JDOM mit XML-Schema XML & JSON 8
P HTML-Sting in JDOM XML & JSON 7
B JDOM && ObjectOutputStream XML & JSON 8
B Versionskonflikt bei JDOM XML & JSON 9
B JDom -- getChild() liefert nicht nachvollziehbar null XML & JSON 2
M JDOM parse Exception XML & JSON 3
G JDom encoding ändern XML & JSON 2
R JDOM Root-Element entfernen aber Rest behalten XML & JSON 10
M XML Elemente mit JDOM durch Text ersetzen XML & JSON 2
R Problem bei Erstellung von XML(JDOM) XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben