📄 rightsxml.java
字号:
package com.ntsky.xml.bbs;
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
import org.dom4j.dom.*;
import org.apache.log4j.Logger ;
import com.ntsky.xml.XMLPath;
import com.ntsky.bbs.service.Rights;
import com.ntsky.xml.bbs.dto.RightsDTO;
import com.ntsky.bbs.service.db.DBRights;
import com.ntsky.xml.XMLReadWrite;
/**
* <p>Title: Ntsky OpenSource BBS</p>
* <p>Description: 权限操作的xml</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: WWW.FM880.COM</p>
* @author 姚君林
* @version 1.0
*/
public class RightsXML {
private final static Logger logger = Logger.getLogger(RightsXML.class);
private int rightId = 0 ;
/**
* 往xml写数据
*/
public void writeXML(Rights right){
Document document = null;
Element root = null;
try {
document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
root = document.getRootElement();
}
catch (Exception ex) {
document = DocumentHelper.createDocument();
root = document.addElement("ntsky");
logger.error("设置权限点时,读取原始数据出错"+ex.getMessage());
}
logger.info("开始写rights信息......");
Element rights = root.addElement("rights");
Element rgtId = rights.addElement("rgtId").addText(String.valueOf(right.getRgtId()));
Element rgtName = rights.addElement("rgtName").addText(right.getRgtName());
Element rgtSort = rights.addElement("rgtSort").addText(right.getRgtSort());
try {
XMLReadWrite.getInstance().write(document,XMLPath.NTSKY_RIGHTS);
}
catch (Exception ex) {
logger.info("往XML中写入信息产生错误 : " + ex.getMessage());
ex.printStackTrace();
}
}
/**
* 单条纪录
* @param rgtId int
* @return Rights
*/
public Rights getSelRightsXML(int rgtId){
Document document = null;
Rights rights = null;
try {
document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
//根节点
Element root = document.getRootElement();
Iterator rs_root = root.elementIterator();
while (rs_root.hasNext()) {
Element element = (Element) rs_root.next();
Iterator rs = element.elementIterator("rgtId");
while (rs.hasNext()) {
Element elt = (Element) rs.next();
if (String.valueOf(rgtId).equals(elt.getText())) {
rights = new DBRights();
rights.setRgtId(rgtId);
setNode(rights,element,"rgtName");
setNode(rights,element,"rgtSort");
}
}
}
}
catch (Exception ex) {
logger.error("删除数据发生错误 : " + ex.getMessage());
}
return rights;
}
/**
* 删除XML中rgtId对应的纪录
* @param rgtId int
*/
public void delRightsXML(int rgtId){
Document document = null;
try {
document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
//根节点
Element root = document.getRootElement();
Iterator rs_root = root.elementIterator();
while (rs_root.hasNext()) {
Element element = (Element) rs_root.next();
Iterator rs = element.elementIterator("rgtId");
while (rs.hasNext()) {
Element elt = (Element) rs.next();
if (String.valueOf(rgtId).equals(elt.getText())) {
root.remove(element);
XMLReadWrite.getInstance().write(document,XMLPath.NTSKY_RIGHTS);
}
}
}
}
catch (Exception ex) {
System.out.print("删除数据发生错误 : " + ex.getMessage());
}
}
/**
* 读取XML数据
*/
public List getRightsXML(){
List list = new ArrayList();
try {
Document document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
//枚举所有的节点
logger.info("开始读取xml文件............");
Element root = document.getRootElement();
//枚举所有的节点
Iterator rs_root = root.elementIterator();
for (; rs_root.hasNext(); ) {
Rights rights = new DBRights();
//获取节点
Element element = (Element) rs_root.next();
setNode(rights, element, "rgtId");
setNode(rights, element, "rgtName");
setNode(rights, element, "rgtSort");
list.add(rights);
}
}
catch (Exception ex) {
logger.error("读取权限XML产生错误 : " + ex.getMessage());
}
return list;
}
private void setRightId(int rightId){
this.rightId = rightId;
}
public int getRightId(){
return rightId;
}
/**
* 从xml检索数据的方法
* @param board Board
* @param element Element
* @param node String
*/
public synchronized void setNode(Rights rightsDTO ,Element element ,String node ){
Iterator rs = element.elementIterator(node);
while (rs.hasNext()) {
Element elt = (Element) rs.next();
if("rgtId".equals(node)){
rightsDTO.setRgtId(Integer.parseInt(elt.getText()));
setRightId(Integer.parseInt(elt.getText()));
logger.info("rgtId节点的值 :" + elt.getText());
}
if("rgtName".equals(node)){
rightsDTO.setRgtName(elt.getText());
logger.info("rgtName节点的值 :" + elt.getText());
}
if("rgtSort".equals(node)){
rightsDTO.setRgtSort(elt.getText());
logger.info("rgtSort 节点的值" + elt.getText());
}
}
}
/**
* 更新XML
* @param rightsId int
*/
public void upRightsXML(Rights rights){
try {
Document document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
//枚举所有的节点
logger.info("开始读取xml文件............");
Element root = document.getRootElement();
//枚举所有的节点
Iterator rs_root = root.elementIterator();
for (; rs_root.hasNext(); ) {
//获取节点
Element element = (Element) rs_root.next();
Iterator rs = element.elementIterator("rgtId");
while (rs.hasNext()) {
Element elt = (Element) rs.next();
String rgtId = String.valueOf(rights.getRgtId());
if (rgtId.equals(elt.getText())) {
upNode(rights, element, "rgtName");
upNode(rights, element, "rgtSort");
//写数据
XMLReadWrite.getInstance().write(document,XMLPath.NTSKY_RIGHTS);
}
}
}
}
catch (Exception ex) {
logger.error("读取权限XML产生错误 : " + ex.getMessage());
}
}
/**
* 更新xml数据的方法
* @param board Board
* @param element Element
* @param node String
*/
public synchronized void upNode(Rights rights, Element element, String node) {
Iterator rs = element.elementIterator(node);
while (rs.hasNext()) {
Element elt = (Element) rs.next();
if ("rgtName".equals(node)) {
elt.setText(rights.getRgtName());
}
if ("rgtSort".equals(node)) {
elt.setText(rights.getRgtSort());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -