?? xmlmanager.java
字號:
{
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 + -