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

    主站蜘蛛池模板: 亚洲中文字幕AV每天更新| 免费播放在线日本感人片| 国产亚洲情侣一区二区无| 免费国产黄网站在线观看| 亚洲狠狠成人综合网| 亚洲人成人网站在线观看| 4444www免费看| 一级毛片试看60分钟免费播放| 亚洲AV无码成人网站在线观看| 在线观看人成视频免费无遮挡| 国产18禁黄网站免费观看| 亚洲av无码偷拍在线观看| 香蕉视频免费在线播放| 无码精品国产一区二区三区免费| 99久久免费国产特黄| 日韩电影免费在线| 亚洲中文字幕不卡无码| 亚洲偷自精品三十六区| 久久午夜夜伦鲁鲁片无码免费| 草久免费在线观看网站| 毛片免费全部免费观看| 亚洲国产美女在线观看| 免费视频成人片在线观看| 国产美女精品视频免费观看| 亚洲午夜久久久精品影院| 男人天堂免费视频| 亚洲天堂中文字幕在线| 国产人成亚洲第一网站在线播放| 精品久久久久久久免费人妻| 亚洲欧美国产精品专区久久| 久久精品国产亚洲av水果派| 亚洲成av人片天堂网老年人| 国产免费丝袜调教视频| 日本一区午夜艳熟免费| 色费女人18女人毛片免费视频| 免费v片视频在线观看视频| 免费A级毛片av无码| 成人免费av一区二区三区| 国产一区二区三区亚洲综合 | jjizz全部免费看片| 一级免费黄色毛片|