91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現一個讀取xml文件內容的類

發布時間:2021-11-30 16:00:07 來源:億速云 閱讀:225 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關如何實現一個讀取xml文件內容的類,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一個讀取xml文件內容的類
package project.util.xml;

import java.io.*;
import java.util.*;
import javax.servlet.http.*;
import org.apache.log4j.*;
import org.jdom.*;
import org.jdom.input.*;

/**
*

Title: 讀取xml文件信息


*

Description: 從XML配置文件中獲得配置信息。excerpt form jdom。


*

Copyright: Copyright (c) 2004


*

Company: Harmonious


* @author TZL
* @version 1.0
*/

public class XMLReader {
/*
#設置根的輸出配置,格式為 "info [2004-05-01 22:35:30] [name]logname(b.c) [line] 86 msg--&gtlog信息"
log4j.rootLogger=DEBUG, rootAppender
log4j.appender.rootAppender=org.apache.log4j.RollingFileAppender
log4j.appender.rootAppender.File=e:/MapXtremeSmpl.log
log4j.appender.rootAppender.MaxFileSize=1000KB
log4j.appender.rootAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.rootAppender.layout.ConversionPattern=%-5p [%d{yyyy-mm-dd HH:mm:ss}] [name] %c{2} [line] %L msg--&gt %m%n
*/
static public Logger log = Logger.getLogger(XMLReader.class);
protected Element m_RootElement = null;
protected String m_webAppPath = null;

/**
* 構造函數。
* @param xmlFile 要讀取的配置文件的絕對路徑。
*/
public XMLReader(String xmlFile) {
m_webAppPath = null;
try {
PatternLayout layout = new PatternLayout("%-5p %d{yyyy-MM-dd HH:mm:ss} [name] %c{2} [line] %L [msg] %m%n");
ConsoleAppender appender = new ConsoleAppender(/*new SimpleLayout(),*/layout, "System.err");
log.addAppender(appender);

SAXBuilder builder = new SAXBuilder();
document.nbspdoc = null;
doc = builder.build(new FileInputStream(xmlFile));
m_RootElement = doc.getRootElement();
}
catch (IOException ex) {
log.error("XMLReader構造時出現IO錯誤:" + ex.toString());
}
catch (JDOMException ex1) {
log.error("XMLReader構造時分析XML文件出錯:" + ex1.toString());
}
catch (Exception ex) {
log.error("XMLReader 構造出錯:" + ex.toString());
}
}

/**
* 構造函數。配置文件必須指定為發布的應用的根目錄下的/XmlConfig/Config.xml。
* @param servletObj 隨便一個HttpServlet對象。
*/
public XMLReader(HttpServlet servletObj) {
m_webAppPath = servletObj.getServletContext().getRealPath("/");
String configFileName = m_webAppPath + "XmlConfig/Config.xml";

try {
PatternLayout layout = new PatternLayout("%-5p %d{yyyy-MM-dd HH:mm:ss} [name] %c{2} [line] %L [msg] %m%n");
ConsoleAppender appender = new ConsoleAppender( /*new SimpleLayout(),*/layout, "System.err");
log.addAppender(appender);

SAXBuilder builder = new SAXBuilder();
document.nbspdoc = null;
doc = builder.build(new FileInputStream(configFileName));
m_RootElement = doc.getRootElement();
}
catch (IOException ex) {
log.error("XMLReader構造時出現IO錯誤(/XmlConfig/Config.xml):" + ex.toString());
}
catch (JDOMException ex1) {
log.error("XMLReader構造時分析XML文件出錯(/XmlConfig/Config.xml):" + ex1.toString());
}
catch (Exception ex) {
log.error("XMLReader構造出錯(/XmlConfig/Config.xml):" + ex.toString());
}
}

/**
* web應用發布在web服務器的絕對路徑根目錄,最后已經有目錄分割符。
* @return 返回web應用發布在web服務器的絕對路徑的根目錄。
*/
public String getWebAppPath() {
return m_webAppPath;
}

/**
* 從配置文件中獲得配置信息。
* @param key 要獲取的配置名稱。
* @param curRootName 查找的起始節點名稱,如果為null從根開始查找。
* @return 配置的字符串。
*/
public String getElementvalue(String curRootName, String key) {
String value = null;
Element curRoot = getElement(null, curRootName);
if (null == curRoot) {
curRoot = m_RootElement;
}
Element keyNode = getElement(curRoot, key);
if (null != keyNode) {
value = keyNode.getTextTrim();

}
return value;
}

/**
* 根據名字獲得節點。廣度遍歷,遞歸調用。
* @param nodeName 節點的名字。
* @param curRoot 從開始查找的起始節點,如果為null從根開始查找。
* @return 返回從指定節點下找到的第一個節點。如果沒有返回null。
*/
private Element getElement(Element curRoot, String nodeName) {
Element retElement = null;

if (null == nodeName)
return m_RootElement;

if (null == curRoot) {
curRoot = m_RootElement;
}

if (null != curRoot) {
retElement = curRoot.getChild(nodeName);
if (null == retElement) {
List nestElements = curRoot.getChildren();
Iterator iterator = nestElements.iterator();
while (iterator.hasNext() && null == retElement) {
retElement = getElement( (Element) iterator.next(), nodeName);
}
}
}

return retElement;
}

/**
* 獲得指定節點的屬性。
* @param elementName 節點的名稱。
* @param attName 要獲得的屬性的名稱。
* @return 要查找的屬性的值。
*/
public String getElementAtrribute(String elementName, String attName)
{
Element el = getElement(null, elementName);
if (null == el)
return null;

return el.getAttributevalue(attName);
}

}

關于“如何實現一個讀取xml文件內容的類”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

xml
AI

永善县| 潞西市| 宁武县| 历史| 吐鲁番市| 韶关市| 江北区| 保德县| 麦盖提县| 富阳市| 广平县| 竹北市| 宜兰县| 无为县| 兰坪| 济南市| 尼木县| 阿巴嘎旗| 禄丰县| 南陵县| 瑞丽市| 天津市| 山西省| 长海县| 林甸县| 郧西县| 茂名市| 商水县| 阳春市| 泰来县| 淮北市| 亳州市| 包头市| 外汇| 筠连县| 章丘市| 通辽市| 巴楚县| 衡阳县| 于都县| 隆化县|