我正在尝试为java swing中的用户登录创建GUI界面。我试图将我的数据存储在Xml文件中,我需要从java访问它并检查在GUI中输入的用户名和密码是否与xml数据中的任何给定用户详细信息匹配。如果匹配,则可以访问下一级别。
我正在尝试使用SAX解析器来访问Xml文件。我无法理解SAX解析器的工作原理以及如何使用它来与GUI的输入进行匹配。
请帮忙。感谢您的所有帮助。
答案 0 :(得分:2)
如果您对文档进行建模,则可以使用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" ));
如果你有模型的模式,你可以轻松验证它
这里有一个例子
答案 1 :(得分:0)
对于每个GUI元素,您应该获取文本,对于开放XML并解析它,检查THIS CODE,这将是有帮助的
答案 2 :(得分:0)
你可以这样做
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());
答案 3 :(得分:0)
SAX Parser与DOM / JAXB的工作方式不同。使用DOM,XML内容可通过DOM生成的节点/元素访问。使用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