我想创建一个GUI界面,用于在java swing中进行用户登录。我试图将数据存储在一个Xml文件中,并且需要从java访问它,并检查在GUI中输入的用户名和密码是否与xml数据中的任何给定用户详细信息匹配。如果匹配,他们可以进入下一个级别。从java读取xml文件
我想使用SAX解析器来访问Xml文件。我无法理解SAX解析器是如何工作的以及它如何用于与来自GUI的输入进行匹配。
请帮助。感谢您提前提供的所有帮助。
我想创建一个GUI界面,用于在java swing中进行用户登录。我试图将数据存储在一个Xml文件中,并且需要从java访问它,并检查在GUI中输入的用户名和密码是否与xml数据中的任何给定用户详细信息匹配。如果匹配,他们可以进入下一个级别。从java读取xml文件
我想使用SAX解析器来访问Xml文件。我无法理解SAX解析器是如何工作的以及它如何用于与来自GUI的输入进行匹配。
请帮助。感谢您提前提供的所有帮助。
为每个GUI元素,你应该得到的文本和开放的XML和解析它检查THIS CODE出来,这将有助于
,如果你有模型文档,你可以使用JAXB:
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"));
您可以轻松地验证,如果你有你的模型的架构
这里有一个例子
你可以做这样
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());
SAX解析器的工作方式不同,从DOM/JAXB。通过DOM,可以通过DOM生成的节点/元素访问XML内容。使用SAX,分析器将通过您的XML文件中读取,并且不是通过事件就会发现内容处理程序等类
相关信息,例如标签属性,内容等
实施例:
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
}
}
还有更多比提到的两个事件。
我希望这将有助于你了解SAX更好
DOM或JAXB比SAX更好的模式,除非你的XML文件是巨大的 – artbristol 2012-03-29 10:02:27