⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlmanager.java

📁 系统包含求职用户和系统管理员两个角色
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            {
                action.setCommandmodel(str);
            }
        }
        return action;
    }
       
    public String UnmarshallText(Node textNode) 
    {
        StringBuffer buf = new StringBuffer();
        NodeList nodes = textNode.getChildNodes();
        int length = nodes.getLength();
        for (int i=0; i<length; i++)
        {
          Node node = nodes.item(i);
          if (node.getNodeType() == Node.TEXT_NODE) {
            buf.append(node.getNodeValue());
          }
        }
        return buf.toString();
    }      

    public boolean saveXML(String fileName)
    {
        boolean bool = true;
        try
        {
	        TransformerFactory tf = TransformerFactory.newInstance();
	        Transformer transformer = tf.newTransformer();
	        DOMSource source = new DOMSource(document);
	        transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
	        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
	        PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
	        StreamResult result = new StreamResult(pw);
	        transformer.transform(source, result);
        }
        catch(TransformerException exp)
        {
            exp.printStackTrace();
            bool = false;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            bool = false;
        }
        return bool;
    }
    
    public boolean modifyUserPassword(String filename, String name, String password, String newpass)
    {
        boolean bool = false;
        try
        {
            if (openXMLDocument(filename) == false)
                return false;
            Node rootNode = document.getFirstChild();
            NodeList nodes = rootNode.getChildNodes();
            int length = nodes.getLength();
            for(int i=0; i<length; i++)
            {
                Node node = nodes.item(i);
                if (node.getNodeType() == Node.ELEMENT_NODE)
                {
                    if ("user".equalsIgnoreCase(node.getNodeName()))
                    {
                        UserXMLModel user = UnmarshallUser(node);
                        if (user.getName().equals(name) && user.getPassword().equals(password))
                        {
                            modifyUserPassword(node, newpass);
                            bool = saveXML(filename);
                            return bool;
                        }
                    }
                }
            }
        }
        catch(Exception exp)
        {
            exp.printStackTrace();
            bool = false;
        }
        return bool;
    }
    
    private void modifyUserPassword(Node userNode, String newpass)
    {
        NodeList nodes = userNode.getChildNodes();
        int length = nodes.getLength();
        for (int i=0; i<length; i++) 
        {
            Node node = nodes.item(i);
            String nodeName = node.getNodeName();
            if ("password".equalsIgnoreCase(nodeName))
            {
                changeNodeText(node, newpass);
                return;
            }    
        }
    }
    
    public ArrayList modifyUserInfo(String filename, String id, String truename, String roles)
    {
        ArrayList users = null;
        try
        {
            if (openXMLDocument(filename) == false)
                return users;
            users = new ArrayList();
            Node rootNode = document.getFirstChild();
            NodeList nodes = rootNode.getChildNodes();
            int length = nodes.getLength();
            for(int i=0; i<length; i++)
            {
                Node node = nodes.item(i);
                if (node.getNodeType() == Node.ELEMENT_NODE)
                {
                    if ("user".equalsIgnoreCase(node.getNodeName()))
                    {
                        UserXMLModel user = UnmarshallUser(node);
                        if (user.getId().equals(id))
                        {
                            modifyUserInfo(node, truename, roles);
                            user.setTrueName(truename);
                            user.setRoles(roles);
                        }
                        users.add(user);
                    }
                }
            }
            saveXML(filename);
        }
        catch(Exception exp)
        {
            exp.printStackTrace();
            return null;
        }
        return users;
    }
    
    public ArrayList addUser(String filename, UserXMLModel user)
    {
        ArrayList users = null;
        try
        {
            if (!openXMLDocument(filename))
                return null;
            users = new ArrayList();
            Node rootNode = document.getFirstChild();
            NodeList nodes = rootNode.getChildNodes();
            int length = nodes.getLength();
            boolean bExist = false;
            for(int i=0; i<length; i++)
            {
                Node node = nodes.item(i);
                if (node.getNodeType() == Node.ELEMENT_NODE)
                {
                    if ("user".equalsIgnoreCase(node.getNodeName()))
                    {
                        UserXMLModel usermodel = UnmarshallUser(node);
                        users.add(usermodel);
                        if (usermodel.getName().equalsIgnoreCase(user.getName()))
                        {
                            bExist = true;
                        }
                    }
                }
            }
            int size = users.size();
            String strId = "1";
            if (size > 0)
            {
                UserXMLModel model = (UserXMLModel)users.get(size-1); 
                strId = model.getId();
                strId = new Integer(new Integer(strId).intValue()+1).toString();
            }
            if (!bExist) //不存在相同名字
            {
	            Element userElement = document.createElement("user");
	            Text textSeg;
	            Element idElement = document.createElement("id");
	            textSeg = document.createTextNode(strId);
	            idElement.appendChild(textSeg);
	            userElement.appendChild(idElement);
	            Element nameElement = document.createElement("name");
	            textSeg = document.createTextNode(user.getName());
	            nameElement.appendChild(textSeg);
	            userElement.appendChild(nameElement);
	            Element pwdElement = document.createElement("password");
	            textSeg = document.createTextNode(user.getPassword());
	            pwdElement.appendChild(textSeg);
	            userElement.appendChild(pwdElement);
	            Element truenameElement = document.createElement("truename");
	            textSeg = document.createTextNode(user.getTrueName());
	            truenameElement.appendChild(textSeg);
	            userElement.appendChild(truenameElement);
	            Element rolesElement = document.createElement("roles");
	            textSeg = document.createTextNode(user.getRoles());
	            rolesElement.appendChild(textSeg);
	            userElement.appendChild(rolesElement);
	            
	            Element element = (Element)rootNode;
                element.setAttribute("count", new Integer(users.size()+1).toString());

	            rootNode.appendChild(userElement); 
	            if (saveXML(filename))
	            {
	                user.setId(strId);
	                users.add(user);
	            }
            }
            return users;
        }
        catch(Exception exp)
        {
            exp.printStackTrace();
            return null;
        }
    }
    
    public ArrayList deleteUser(String filename, String strId)
    {
        ArrayList users = null;
        try
        {
            if (openXMLDocument(filename) == false)
                return users;
            users = new ArrayList();
            Node rootNode = document.getFirstChild();
            NodeList nodes = document.getElementsByTagName("user");
    		boolean bFindNode = false;
    		int length = nodes.getLength();
    		for(int i=0; i<length; i++)
    		{
    		    Node node = nodes.item(i);
    		    Element element = (Element)node;
    			UserXMLModel user = UnmarshallUser(node);
    			if((element.getElementsByTagName("id").item(0).getFirstChild().getNodeValue()).trim().equals(strId))
    			{
    			    bFindNode = true;
    				try
    				{
    					element.getParentNode().removeChild(element);
    				}
    				catch(DOMException e)
    				{	//Dom错误
    					e.printStackTrace();
    				}
    				continue;
    			}
    			users.add(user);
    		}
    		if (bFindNode)
            {
                Element element = (Element)rootNode;
                element.setAttribute("count", new Integer(users.size()).toString());
                saveXML(filename);
            }
        }
        catch(Exception exp)
        {
            exp.printStackTrace();
            return null;
        }
        return users;
    }
    
    private void modifyUserInfo(Node userNode, String truename, String roles)
    {
        NodeList nodes = userNode.getChildNodes();
        int length = nodes.getLength();
        for (int i=0; i<length; i++) 
        {
            Node node = nodes.item(i);
            String nodeName = node.getNodeName();
            if ("trueName".equalsIgnoreCase(nodeName))
            {
                changeNodeText(node, truename);
            }    
            else if("roles".equalsIgnoreCase(nodeName))
            {
                changeNodeText(node, roles);
            }
        }
    }
    
    private void changeNodeText(Node textNode, String newText) 
    {
        NodeList nodes = textNode.getChildNodes();
        int length = nodes.getLength();
        for (int i=0; i<length; i++)
        {
          Node node = nodes.item(i);
          if (node.getNodeType() == Node.TEXT_NODE)
          {
              node.setNodeValue(newText);
              return;
          }
        }
    }
    
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -