<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  回復  更多評論
      

    主站蜘蛛池模板: 国产亚洲欧洲Aⅴ综合一区| 亚洲成a人片在线观看久| 777亚洲精品乱码久久久久久| 黄页网站在线观看免费| va亚洲va日韩不卡在线观看| 在线91精品亚洲网站精品成人| 日韩在线免费看网站| 久久亚洲精品11p| 亚洲国产电影av在线网址| 又黄又大的激情视频在线观看免费视频社区在线 | 免费无码肉片在线观看| 亚洲一区二区三区国产精华液| 精品熟女少妇AV免费观看| 国产亚洲欧美日韩亚洲中文色| 四虎影院永久免费观看| 亚洲精品黄色视频在线观看免费资源| 国产日产亚洲系列最新| 久久免费观看国产精品| 亚洲国产成人久久综合一区| 成全视频在线观看免费高清动漫视频下载 | 久久精品人成免费| 亚洲youjizz| 四虎影视永久免费观看地址| 三年片在线观看免费观看大全中国| 亚洲精品无码av天堂| 久久国产精品2020免费m3u8| 久久99亚洲网美利坚合众国| 一二三四免费观看在线视频中文版 | 国内永久免费crm系统z在线| 久久精品亚洲精品国产色婷| 中国在线观看免费国语版| 特级毛片aaaa级毛片免费| 亚洲av无码无在线观看红杏| 男女做羞羞的事视频免费观看无遮挡| 亚洲精品国产摄像头| 久久精品国产亚洲沈樵| 好吊妞在线成人免费| 免费无码作爱视频| 亚洲国产AV无码一区二区三区| 亚洲人成人一区二区三区| 97人伦色伦成人免费视频|