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

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

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

    無為

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

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      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節(jié)點(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節(jié)點, 并返回此節(jié)點的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(草兒)原創(chuàng),凡是索引、收藏
    、轉載請注明來處和原文作者。非常感謝。

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

    主站蜘蛛池模板: 无遮免费网站在线入口| 99热这里有免费国产精品| 成人无遮挡裸免费视频在线观看| 全部一级一级毛片免费看| 免费无码一区二区三区蜜桃大| 亚洲一级片免费看| 国产特黄一级一片免费| 亚洲中文字幕在线第六区| 91视频免费观看高清观看完整| 91视频国产免费| 亚洲熟女精品中文字幕| 国产又黄又爽又猛免费app| 亚洲狠狠成人综合网| 日本人护士免费xxxx视频| 久久亚洲一区二区| 一区二区免费视频| 亚洲精品美女在线观看| 91精品免费久久久久久久久| 国产91在线|亚洲| 精品免费国产一区二区三区| 一本岛v免费不卡一二三区| 色婷婷7777免费视频在线观看| 国产亚洲一区二区三区在线不卡| 亚洲熟妇无码一区二区三区导航 | 美腿丝袜亚洲综合| 33333在线亚洲| 国产美女无遮挡免费视频网站| 亚洲av午夜精品无码专区| 女人毛片a级大学毛片免费| 美女被免费视频网站a| 亚洲深深色噜噜狠狠爱网站| 久久国产乱子伦免费精品| 亚洲日本VA午夜在线影院| 久久久青草青青国产亚洲免观| 亚洲成a人片在线观看天堂无码| 亚洲国产精品人久久| 日本免费大黄在线观看| 亚洲女子高潮不断爆白浆| 亚洲日本一区二区三区在线| 韩国免费一级成人毛片| 思思久久99热免费精品6|