2012-03-29 19 views
1

Ich versuche, eine GUI-Schnittstelle für die Benutzeranmeldung in Java Swing zu erstellen. Ich versuche, meine Daten in einer Xml-Datei zu speichern, und ich muss darauf von Java zugreifen und überprüfen, ob der Benutzername und das Kennwort, die in der GUI eingegeben werden, mit den angegebenen Benutzerdetails in den XML-Daten übereinstimmen. Wenn es übereinstimmt, erhalten sie Zugriff auf die nächste Ebene.XML-Datei aus Java lesen

Ich versuche, SAX-Parser für den Zugriff auf die Xml-Datei verwenden. Ich kann nicht verstehen, wie der SAX-Parser funktioniert und wie er für die Übereinstimmung mit der Eingabe von der GUI verwendet werden kann.

Bitte helfen. Vielen Dank für Ihre Hilfe im Voraus.

+2

DOM oder JAXB sind ein besseres Modell als SAX zu verstehen, es sei denn, Ihre XML-Datei ist riesig – artbristol

Antwort

0

für jede Ihrer GUI-Elemente Sie Text und für Open XML bekommen sollte und analysieren es THIS CODE heraus zu überprüfen, wird es hilfreich sein

2

Sie jaxb verwenden könnte, wenn Sie Modell Ihr Dokument haben:

JAXBContext jc = JAXBContext.newInstance("myPackageName"); 
//Create unmarshaller 
Unmarshaller um = jc.createUnmarshaller(); 
//Unmarshal XML contents of the file myDoc.xml into your Java object instance. 
MyJAXBObject myJAXBObject = (MyJAXBObject) 
    um.unmarshal(new java.io.FileInputStream("myDoc.xml")); 

Sie können leicht überprüfen, ob Sie ein Schema des Modells haben

hier gibt es ein Beispiel

http://www.mkyong.com/java/jaxb-hello-world-example/

0

Sie können auf diese Weise tun

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
Document doc = docBuilder.parse("/home/riddhish/developerworkspace/SplitString/src/com/updatexmlwithjava/two.xml"); 

NodeList username = doc.getElementsByTagName("username");   
System.out.println("username ="+username.item(0).getTextContent()); 
NodeList password = doc.getElementsByTagName("password");   
System.out.println("password ="+password.item(0).getTextContent()); 
0

SAX-Parser anders DOM/JAXB funktioniert. Mit DOM wird der XML-Inhalt über den von DOM erzeugten Knoten/Element zugänglich gemacht. Mit SAX, wird der Parser lesen Sie Ihre XML-Datei und als über Ereignis wird es den Content-Handler bemerken solche wie:

  • Starttag
  • End-Tag

Mit Informationen wie Tagattribute , Inhalt usw.

Beispiel:

public class TagHandler extends DefaultHandler{ 

//tag opening detection 
public void startElement(String uri, String localName, 
     String qName, Attributes attributes) throws SAXException{ 
    // ... your code 
} 
//tag closing detection 
public void endElement(String uri, String localName, String qName) 
     throws SAXException{ 
    // ... your code 
} 

} 

Es gibt mehr als das zwei Ereignisse erwähnt.

Ich hoffe, dass wird Ihnen helfen, SAX besser