<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無為

    無為則可為,無為則至深!

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
    如果我們有下面的一個XML文件,可以把它想象成一個Relation Database中的Table, 這個XML文件就是一個名字為managers的關系表,而一個<manager>所包含的就是一條記錄(Record),而manager中的service和implementation就是一個個的欄位(Field) !

    managers table
     +  service implementation
    net.csdn.blog.xport.IDBConnectionManager net.csdn.blog.xport.impl.DBConnectionManagerCommonImpl
    net.csdn.blog.xport.IDomainIdentify net.csdn.blog.xport.impl.DomainIdentifyImpl

    所以,在程序中,可以用類似Table Query的方式來讀取XML節點(Node)上面的屬性值!

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE managers SYSTEM "manager-config.dtd">
    <managers>
    <manager name="DBConnectionManager" >
    <service>net.csdn.blog.xport.IDBConnectionManager</service>
    <implementation>net.csdn.blog.xport.impl.DBConnectionManagerCommonImpl</implementation>
    </manager>
    <manager name="NTAccountIdendify" >
    <service>net.csdn.blog.xport.IDomainIdentify</service>
    <implementation>net.csdn.blog.xport.impl.DomainIdentifyImpl</implementation>
    </manager>
    </managers>

    按照下面的代碼讀取:

    // 查找以manager作為tag標記,屬性中存在name且屬性值為"DBConnectionManager"的
    // XML節點, 并返回此節點的DOM Element對象!
    // 類似name字段為PK值,且name="DBConnectionManager"
    managerElement
    = XMLFileUtil.findElement(xmlDomContent.getRootElement(),
    "manager",
    "name",
    "DBConnectionManager");
    if (managerElement != null) {
    //取得Element中的implementation屬性對象...
    serviceImplElement = managerElement.element("implementation");
    if (serviceImplElement != null) {
    //取這個屬性的值...
    serviceImplClassString = serviceImplElement.getText();
    }
    }

    Source of XML Utility Class:

    /*

    * @(#)XMLFileUtil.java 1.0 2004/12/20
    *
    * Copyright 2004 Shark Wang, All rights reserved.

    */

    package net.csdn.blog.xport;

    import java.net.URL;
    import java.util.Iterator;

    import org.apache.log4j.LogManager;
    import org.apache.log4j.Logger;
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;

    /**
    * The <code>XmlUtil</code> class supported your code to read/write xml
    * data from the file. all methods in this class depend on <code>dom4j</code>.
    *
    *
    @author Shark Wang
    *
    @version 1.0, 2004/12/20
    *
    @since Tutorial 1.0
    */

    public class XMLFileUtil {

    private static Logger logger = LogManager.getLogger(XMLFileUtil.class);

    /**
    * read xml content from some file, and load xml data into the
    * Document object.
    *
    *
    @param filePath String
    *
    @return Document
    */

    public static Document LoadXmlFile(String filePath) {

    /* marked by Shark Wang
    *****************************************************************
    //get resolver to ignore the DTD validation
    EntityResolver resolver = new EntityResolver() {
    public InputSource resolveEntity(String publicId,
    String systemId) {
    return new InputSource(new StringBufferInputStream(""));
    }
    };
    //create reader
    SAXReader reader = new SAXReader();
    //set reader attribute to ignore DTD validation
    reader.setEntityResolver(resolver);
    reader.setValidation(false);
    reader.setIncludeExternalDTDDeclarations(false);
    reader.setIncludeInternalDTDDeclarations(false);
    *******************************************************************
    */

    SAXReader reader =
    new SAXReader();
    //try to load xml data into Document object
    Document doc = null;
    try {
    String urlString =
    null;
    if (filePath.startsWith("/")) {
    urlString = "file://" + filePath;
    }
    else {
    urlString = "file:///" + filePath;
    }
    logger.debug("XML File's URL :" + urlString);
    doc = reader.read(
    new URL(urlString));
    }
    catch (Exception ex) {
    logger.info("Can not load " + filePath);
    logger.debug(ex.getMessage(), ex);
    }
    //return Document object
    return doc;
    }

    /**
    * Get attribute value by name for some xml element.
    *
    *
    @param element Element
    *
    @param attributeName String
    *
    @return String
    */

    public static String getAttributeValue(Element element,
    String attributeName) {
    String attributeValue =
    null;
    for (Iterator i = element.attributeIterator(); i.hasNext(); ) {
    Attribute attribute = (Attribute) i.next();
    if (attribute.getName().equals(attributeName)) {
    attributeValue = (String) attribute.getData();
    break;
    }
    }
    return attributeValue;
    }

    public static Element findElement(Element searchedElement,
    String targetNodePrefix,
    String targetNodeAttributeName,
    String targetNodeAttributeValue) {
    Element elementTarget =
    null;
    for (Iterator i = searchedElement.elementIterator(targetNodePrefix);
    i.hasNext(); ) {
    Element element = (Element) i.next();
    String strManagerName =
    XMLFileUtil.getAttributeValue(element,
    targetNodeAttributeName);
    if (strManagerName.equals(targetNodeAttributeValue)) {
    elementTarget = element;
    break;
    }
    }
    return elementTarget;
    }

    private XMLFileUtil() {
    }
    }


    凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
    、轉載請注明來處和原文作者。非常感謝。

    posted on 2006-01-06 17:08 草兒 閱讀(1612) 評論(1)  編輯  收藏 所屬分類: Java編程經驗談

    Feedback

    # re: [Java]寫了一個Java讀取XML文件的工具類 2014-11-25 17:17 zuidaima
    java工具類源代碼下載:http://zuidaima.com/share_topic/k%E8%84%9A%E6%9C%AC%E5%92%8C%E5%B7%A5%E5%85%B7-p1-s1.htm  回復  更多評論
      

    主站蜘蛛池模板: 亚欧洲精品在线视频免费观看| 免费看黄的成人APP| 美女羞羞喷液视频免费| 99久久免费国产特黄| 成年女人免费v片| 亚洲日本中文字幕天堂网| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲人成网站日本片| 三级片免费观看久久| 97视频热人人精品免费| 久久伊人久久亚洲综合| 羞羞网站在线免费观看| 伊在人亚洲香蕉精品区麻豆| 亚洲国产成人久久综合一区| 99在线视频免费观看视频| 亚洲色在线无码国产精品不卡| 久久黄色免费网站| 又爽又高潮的BB视频免费看| 亚洲首页国产精品丝袜| 中美日韩在线网免费毛片视频| 久久精品网站免费观看| 亚洲精品乱码久久久久久下载 | 亚洲第一二三四区| 猫咪社区免费资源在线观看| 粉色视频在线观看www免费| 国产成在线观看免费视频| 亚洲精品无码久久| 两个人的视频高清在线观看免费| 99热亚洲色精品国产88| 亚洲AV无码一区二区三区在线观看| 亚洲乱妇老熟女爽到高潮的片| 亚洲精品国产高清嫩草影院 | 亚洲综合色视频在线观看| 久久精品国产免费| 亚洲日韩一页精品发布| 一级黄色片免费观看| 亚洲精品mv在线观看| 亚洲A丁香五香天堂网| 最好看最新的中文字幕免费| 亚洲∧v久久久无码精品| 四虎成人免费大片在线|