XML的add,update.delete,select
public String getFilterUrls()
{
Document doc = getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
StringBuffer sb = new StringBuffer();
// 遍歷filterUrlsList
for (Element e : filList)
{
//添加到filterUrlsList
sb.append(e.getText().trim() + ",");
}
filrUrls = sb.toString();
return SUCCESS;
}
/**
* < 獲取僅列號全部問題單鏈接>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String getRecordUrls()
{
Document doc = this.getElement();
// 得到根節點
Element root = doc.getRootElement();
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
StringBuffer sb = new StringBuffer();
// 遍歷recordUrlsList
for (Element e : recList)
{
sb.append(e.getText().trim() + ",");
}
recUrls = sb.toString();
return SUCCESS;
}
/**
* <更新非撤銷問題單下載鏈接>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String updateDts()
{
// 獲取文件的節點的ID
String dtsId = StringTools.getStringFromMap(getParameter(), "dtsId");
// 獲取問題單修改的內容
String dtsCon = StringTools.getStringFromMap(getParameter(), "dtsCon");
// 獲取修改的問題鏈接的類型
String dtsType =
StringTools.getStringFromMap(getParameter(), "dtsType");
// 得到 Document對象
Document doc = this.getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
// 創建一個list<String>, 來保存讀取的數據和修改的數據
List<String> urlList = new ArrayList<String>();
//未修改的問題單鏈接
List<String> otherUrlList = new ArrayList<String>();
//判斷修改問題單類型
if ("filterUrls".equals(dtsType))
{
// 遍歷recordUrlsList
for (int i = 0; i < filList.size(); i++)
{
//判斷修改的節點ID 是否等於xml的節點
if (Integer.parseInt(dtsId) == i)
{
urlList.add(dtsCon);
}
else
{
urlList.add(filList.get(i).getText());
}
}
//未修改的問題單
for (int i = 0; i < recList.size(); i++)
{
otherUrlList.add(recList.get(i).getText());
}
// 調用修改XML節點方法
if (this.creXml(urlList, otherUrlList, "filterUrls"))
{
//修改成功返回碼
isTrue = "true";
return SUCCESS;
}
}
else if ("recordUrls".equals(dtsType))
{
// 遍歷recordUrlsList
for (int i = 0; i < recList.size(); i++)
{
//判斷修改的節點ID 是否等於xml的節點
if (Integer.parseInt(dtsId) == i)
{
urlList.add(dtsCon);
}
else
{
urlList.add(recList.get(i).getText());
}
}
//未修改的問題單
for (int i = 0; i < filList.size(); i++)
{
otherUrlList.add(filList.get(i).getText());
}
// 調用修改XML節點方法
if (this.creXml(urlList, otherUrlList, "recordUrls"))
{
//修改成功返回碼
isTrue = "true";
return SUCCESS;
}
}
return ERROR;
}
/**
* <根據ID刪除問題單鏈接>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String deleteDts()
{
OutputFormat format = null;
XMLWriter writer = null;
// 獲取文件的節點的ID
String dtsId = StringTools.getStringFromMap(getParameter(), "dtsId");
// 獲取刪除的問題鏈接的類型
String dtsType =
StringTools.getStringFromMap(getParameter(), "dtsType");
// 得到 Document對象
Document doc = this.getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
// 判斷要刪除的類型
if ("filterUrls".equals(dtsType))
{
//刪除某一個URL節點
for (int i = 0; i < filList.size(); i++)
{
Element el = filList.get(i);
if (i == Integer.parseInt(dtsId))
{
filList.remove(el);
}
}
}
else if ("recordUrls".equals(dtsType))
{
//刪除某一個URL節點
for (int i = 0; i < recList.size(); i++)
{
Element el = recList.get(i);
if (i == Integer.parseInt(dtsId))
{
recList.remove(el);
}
}
}
format = OutputFormat.createPrettyPrint();
//設置編碼
format.setEncoding("UTF-8");
try
{
writer = new XMLWriter(new FileWriter(new File(strUrl)), format);
writer.write(doc);
writer.close();
}
catch (IOException e)
{
LOG.error(StringVar.INPOUTIO, e);
}
//成功返回碼
isTrue = "true";
return SUCCESS;
}
/**
* <增加問題單>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String addDts()
{
// 獲取增加的問題鏈接
String dtsCon = StringTools.getStringFromMap(getParameter(), "dtsCon");
// 獲取增加的問題鏈接的類型
String dtsType =
StringTools.getStringFromMap(getParameter(), "dtsType");
// 得到 Document對象
Document doc = this.getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
int urlSize = managerService.queryVersionList();
if (filList.size() >= urlSize && "filterUrls".equals(dtsType))
{
//向頁面傳值(能增加的問題單的數量)
vSize = urlSize;
}
else if (recList.size() >= urlSize && "recordUrls".equals(dtsType))
{
//向頁面傳值(能增加的問題單的數量)
vSize = urlSize;
}
// 創建一個list<String>, 來保存讀取的數據和修改的數據
List<String> urlList = new ArrayList<String>();
//未修改的問題單鏈接
List<String> otherUrlList = new ArrayList<String>();
//判斷增加的問題單URL
if ("filterUrls".equals(dtsType)
&& filList.size() < urlSize)
{
for (Element el : filList)
{
urlList.add(el.getText());
}
urlList.add(dtsCon);
//未修改的問題單
for (int i = 0; i < recList.size(); i++)
{
otherUrlList.add(recList.get(i).getText());
}
// 創建新的問題單鏈接
this.creXml(urlList, otherUrlList, "addFilterUrls");
}
else if ("recordUrls".equals(dtsType)
&& recList.size() < urlSize)
{
for (Element el : recList)
{
urlList.add(el.getText());
}
urlList.add(dtsCon);
//未修改的問題單
for (int i = 0; i < filList.size(); i++)
{
otherUrlList.add(filList.get(i).getText());
}
// 創建新的問題單鏈接
this.creXml(urlList, otherUrlList, "addRecordUrls");
}
return SUCCESS;
}
/**
* <獲取Element的對象值>
* <功能詳細描述>
* @return document
* @see [類、類#方法、類#成員]
*/
private Document getElement()
{
// 獲取文件路徑
File fi = new File(strUrl);
// 創建dom4j的 SAXReader對象
SAXReader saxReader = new SAXReader();
Document doc = null;
try
{
doc = saxReader.read(fi);
}
catch (DocumentException e)
{
LOG.error(StringVar.LISTERROR, e);
}
return doc;
}
/**
* <修改XML的url節點>
* <功能詳細描述>
* @param urlList 修改的url節點內容
* @param otherUrlList 沒有修改的哪個問題單鏈接
* @param urlName 修改節點的名稱
* @return success
* @see [類、類#方法、類#成員]
*/
public boolean creXml(List<String> urlList, List<String> otherUrlList,
String urlName)
{
boolean flag = false;
// document對象
Document document = null;
//根節點
Element autoDownConifg = null;
//dbServer節點
Element dbServer = null;
//dbUser節點
Element dbUser = null;
//dbPwd節點
Element dbPwd = null;
//dbName節點
Element dbName = null;
//domainHost節點
Element domainHost = null;
//filterDir節點
Element filterDir = null;
//recordDir節點
Element recordDir = null;
//filterUrls節點
Element filterUrls = null;
//recordUrls節點
Element recordUrls = null;
//url節點
//Element url = null;
OutputFormat format = null;
XMLWriter writer = null;
try
{
document = DocumentHelper.createDocument();
// 給各個節點放值
autoDownConifg = document.addElement("autoDownConifg");
dbServer = autoDownConifg.addElement("dbServer");
dbServer.setText("localhost");
dbUser = autoDownConifg.addElement("dbUser");
dbUser.setText("root");
dbPwd = autoDownConifg.addElement("dbPwd");
dbPwd.setText("LTE_2011");
dbName = autoDownConifg.addElement("dbName");
dbName.setText("cilog");
domainHost = autoDownConifg.addElement("domainHost");
domainHost.setText("china.huawei.com");
// 創建CDATA節點
filterDir = autoDownConifg.addElement("filterDir");
filterDir.addCDATA(strFilterDir);
// 創建CDATA節點
recordDir = autoDownConifg.addElement("recordDir");
recordDir.addCDATA(strRecordDir);
filterUrls = autoDownConifg.addElement("filterUrls");
recordUrls = autoDownConifg.addElement("recordUrls");
// 判斷修改的XML是什麼節點
if ("filterUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, filterUrls, recordUrls);
}
else if ("recordUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, recordUrls, filterUrls);
}
// 判斷增加的XML是什麼節點
if ("addFilterUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, filterUrls, recordUrls);
}
else if ("addRecordUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, recordUrls, filterUrls);
}
format = OutputFormat.createPrettyPrint();
//設置編碼
format.setEncoding("UTF-8");
writer = new XMLWriter(new FileWriter(new File(strUrl)), format);
writer.write(document);
writer.close();
flag = true;
return flag;
}
catch (Exception e)
{
LOG.error(StringVar.CREATEXML, e);
}
return flag;
}
/**
* <修改或者新增XML的FilterUrls節點URL>
* <功能詳細描述>
* @param urlList
* @param otherUrlList
* @param filterUrls
* @param recordUrls
* @see [類、類#方法、類#成員]
*/
private void upFilterUrls(List<String> urlList, List<String> otherUrlList,
Element filterUrls, Element recordUrls)
{
Element url;
//循環插入到節點中 (CDATA)
for (int i = 0; i < urlList.size(); i++)
{
url = filterUrls.addElement("url");
url.addCDATA(urlList.get(i));
}
//循環插入recordUrls節點的URL (CDATA)
for (int i = 0; i < otherUrlList.size(); i++)
{
url = recordUrls.addElement("url");
url.addCDATA(otherUrlList.get(i));
}
}
{
Document doc = getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
StringBuffer sb = new StringBuffer();
// 遍歷filterUrlsList
for (Element e : filList)
{
//添加到filterUrlsList
sb.append(e.getText().trim() + ",");
}
filrUrls = sb.toString();
return SUCCESS;
}
/**
* < 獲取僅列號全部問題單鏈接>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String getRecordUrls()
{
Document doc = this.getElement();
// 得到根節點
Element root = doc.getRootElement();
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
StringBuffer sb = new StringBuffer();
// 遍歷recordUrlsList
for (Element e : recList)
{
sb.append(e.getText().trim() + ",");
}
recUrls = sb.toString();
return SUCCESS;
}
/**
* <更新非撤銷問題單下載鏈接>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String updateDts()
{
// 獲取文件的節點的ID
String dtsId = StringTools.getStringFromMap(getParameter(), "dtsId");
// 獲取問題單修改的內容
String dtsCon = StringTools.getStringFromMap(getParameter(), "dtsCon");
// 獲取修改的問題鏈接的類型
String dtsType =
StringTools.getStringFromMap(getParameter(), "dtsType");
// 得到 Document對象
Document doc = this.getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
// 創建一個list<String>, 來保存讀取的數據和修改的數據
List<String> urlList = new ArrayList<String>();
//未修改的問題單鏈接
List<String> otherUrlList = new ArrayList<String>();
//判斷修改問題單類型
if ("filterUrls".equals(dtsType))
{
// 遍歷recordUrlsList
for (int i = 0; i < filList.size(); i++)
{
//判斷修改的節點ID 是否等於xml的節點
if (Integer.parseInt(dtsId) == i)
{
urlList.add(dtsCon);
}
else
{
urlList.add(filList.get(i).getText());
}
}
//未修改的問題單
for (int i = 0; i < recList.size(); i++)
{
otherUrlList.add(recList.get(i).getText());
}
// 調用修改XML節點方法
if (this.creXml(urlList, otherUrlList, "filterUrls"))
{
//修改成功返回碼
isTrue = "true";
return SUCCESS;
}
}
else if ("recordUrls".equals(dtsType))
{
// 遍歷recordUrlsList
for (int i = 0; i < recList.size(); i++)
{
//判斷修改的節點ID 是否等於xml的節點
if (Integer.parseInt(dtsId) == i)
{
urlList.add(dtsCon);
}
else
{
urlList.add(recList.get(i).getText());
}
}
//未修改的問題單
for (int i = 0; i < filList.size(); i++)
{
otherUrlList.add(filList.get(i).getText());
}
// 調用修改XML節點方法
if (this.creXml(urlList, otherUrlList, "recordUrls"))
{
//修改成功返回碼
isTrue = "true";
return SUCCESS;
}
}
return ERROR;
}
/**
* <根據ID刪除問題單鏈接>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String deleteDts()
{
OutputFormat format = null;
XMLWriter writer = null;
// 獲取文件的節點的ID
String dtsId = StringTools.getStringFromMap(getParameter(), "dtsId");
// 獲取刪除的問題鏈接的類型
String dtsType =
StringTools.getStringFromMap(getParameter(), "dtsType");
// 得到 Document對象
Document doc = this.getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
// 判斷要刪除的類型
if ("filterUrls".equals(dtsType))
{
//刪除某一個URL節點
for (int i = 0; i < filList.size(); i++)
{
Element el = filList.get(i);
if (i == Integer.parseInt(dtsId))
{
filList.remove(el);
}
}
}
else if ("recordUrls".equals(dtsType))
{
//刪除某一個URL節點
for (int i = 0; i < recList.size(); i++)
{
Element el = recList.get(i);
if (i == Integer.parseInt(dtsId))
{
recList.remove(el);
}
}
}
format = OutputFormat.createPrettyPrint();
//設置編碼
format.setEncoding("UTF-8");
try
{
writer = new XMLWriter(new FileWriter(new File(strUrl)), format);
writer.write(doc);
writer.close();
}
catch (IOException e)
{
LOG.error(StringVar.INPOUTIO, e);
}
//成功返回碼
isTrue = "true";
return SUCCESS;
}
/**
* <增加問題單>
* <功能詳細描述>
* @return success
* @see [類、類#方法、類#成員]
*/
public String addDts()
{
// 獲取增加的問題鏈接
String dtsCon = StringTools.getStringFromMap(getParameter(), "dtsCon");
// 獲取增加的問題鏈接的類型
String dtsType =
StringTools.getStringFromMap(getParameter(), "dtsType");
// 得到 Document對象
Document doc = this.getElement();
// 讀取文件
// 得到根節點
Element root = doc.getRootElement();
// 取得filterUrls節點
Element filterUrls = root.element("filterUrls");
// 取得recordUrls節點
Element recordUrls = root.element("recordUrls");
//得到filterUrls多個url節點的list
List<Element> filList = filterUrls.elements("url");
//得到recordUrls多個url節點的list
List<Element> recList = recordUrls.elements("url");
int urlSize = managerService.queryVersionList();
if (filList.size() >= urlSize && "filterUrls".equals(dtsType))
{
//向頁面傳值(能增加的問題單的數量)
vSize = urlSize;
}
else if (recList.size() >= urlSize && "recordUrls".equals(dtsType))
{
//向頁面傳值(能增加的問題單的數量)
vSize = urlSize;
}
// 創建一個list<String>, 來保存讀取的數據和修改的數據
List<String> urlList = new ArrayList<String>();
//未修改的問題單鏈接
List<String> otherUrlList = new ArrayList<String>();
//判斷增加的問題單URL
if ("filterUrls".equals(dtsType)
&& filList.size() < urlSize)
{
for (Element el : filList)
{
urlList.add(el.getText());
}
urlList.add(dtsCon);
//未修改的問題單
for (int i = 0; i < recList.size(); i++)
{
otherUrlList.add(recList.get(i).getText());
}
// 創建新的問題單鏈接
this.creXml(urlList, otherUrlList, "addFilterUrls");
}
else if ("recordUrls".equals(dtsType)
&& recList.size() < urlSize)
{
for (Element el : recList)
{
urlList.add(el.getText());
}
urlList.add(dtsCon);
//未修改的問題單
for (int i = 0; i < filList.size(); i++)
{
otherUrlList.add(filList.get(i).getText());
}
// 創建新的問題單鏈接
this.creXml(urlList, otherUrlList, "addRecordUrls");
}
return SUCCESS;
}
/**
* <獲取Element的對象值>
* <功能詳細描述>
* @return document
* @see [類、類#方法、類#成員]
*/
private Document getElement()
{
// 獲取文件路徑
File fi = new File(strUrl);
// 創建dom4j的 SAXReader對象
SAXReader saxReader = new SAXReader();
Document doc = null;
try
{
doc = saxReader.read(fi);
}
catch (DocumentException e)
{
LOG.error(StringVar.LISTERROR, e);
}
return doc;
}
/**
* <修改XML的url節點>
* <功能詳細描述>
* @param urlList 修改的url節點內容
* @param otherUrlList 沒有修改的哪個問題單鏈接
* @param urlName 修改節點的名稱
* @return success
* @see [類、類#方法、類#成員]
*/
public boolean creXml(List<String> urlList, List<String> otherUrlList,
String urlName)
{
boolean flag = false;
// document對象
Document document = null;
//根節點
Element autoDownConifg = null;
//dbServer節點
Element dbServer = null;
//dbUser節點
Element dbUser = null;
//dbPwd節點
Element dbPwd = null;
//dbName節點
Element dbName = null;
//domainHost節點
Element domainHost = null;
//filterDir節點
Element filterDir = null;
//recordDir節點
Element recordDir = null;
//filterUrls節點
Element filterUrls = null;
//recordUrls節點
Element recordUrls = null;
//url節點
//Element url = null;
OutputFormat format = null;
XMLWriter writer = null;
try
{
document = DocumentHelper.createDocument();
// 給各個節點放值
autoDownConifg = document.addElement("autoDownConifg");
dbServer = autoDownConifg.addElement("dbServer");
dbServer.setText("localhost");
dbUser = autoDownConifg.addElement("dbUser");
dbUser.setText("root");
dbPwd = autoDownConifg.addElement("dbPwd");
dbPwd.setText("LTE_2011");
dbName = autoDownConifg.addElement("dbName");
dbName.setText("cilog");
domainHost = autoDownConifg.addElement("domainHost");
domainHost.setText("china.huawei.com");
// 創建CDATA節點
filterDir = autoDownConifg.addElement("filterDir");
filterDir.addCDATA(strFilterDir);
// 創建CDATA節點
recordDir = autoDownConifg.addElement("recordDir");
recordDir.addCDATA(strRecordDir);
filterUrls = autoDownConifg.addElement("filterUrls");
recordUrls = autoDownConifg.addElement("recordUrls");
// 判斷修改的XML是什麼節點
if ("filterUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, filterUrls, recordUrls);
}
else if ("recordUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, recordUrls, filterUrls);
}
// 判斷增加的XML是什麼節點
if ("addFilterUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, filterUrls, recordUrls);
}
else if ("addRecordUrls".equals(urlName))
{
upFilterUrls(urlList, otherUrlList, recordUrls, filterUrls);
}
format = OutputFormat.createPrettyPrint();
//設置編碼
format.setEncoding("UTF-8");
writer = new XMLWriter(new FileWriter(new File(strUrl)), format);
writer.write(document);
writer.close();
flag = true;
return flag;
}
catch (Exception e)
{
LOG.error(StringVar.CREATEXML, e);
}
return flag;
}
/**
* <修改或者新增XML的FilterUrls節點URL>
* <功能詳細描述>
* @param urlList
* @param otherUrlList
* @param filterUrls
* @param recordUrls
* @see [類、類#方法、類#成員]
*/
private void upFilterUrls(List<String> urlList, List<String> otherUrlList,
Element filterUrls, Element recordUrls)
{
Element url;
//循環插入到節點中 (CDATA)
for (int i = 0; i < urlList.size(); i++)
{
url = filterUrls.addElement("url");
url.addCDATA(urlList.get(i));
}
//循環插入recordUrls節點的URL (CDATA)
for (int i = 0; i < otherUrlList.size(); i++)
{
url = recordUrls.addElement("url");
url.addCDATA(otherUrlList.get(i));
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.