<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
    如果我們有下面的一個(gè)XML文件,可以把它想象成一個(gè)Relation Database中的Table, 這個(gè)XML文件就是一個(gè)名字為managers的關(guān)系表,而一個(gè)<manager>所包含的就是一條記錄(Record),而manager中的service和implementation就是一個(gè)個(gè)的欄位(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é)點(diǎn)(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標(biāo)記,屬性中存在name且屬性值為"DBConnectionManager"的
    // XML節(jié)點(diǎn), 并返回此節(jié)點(diǎn)的DOM Element對(duì)象!
    // 類似name字段為PK值,且name="DBConnectionManager"
    managerElement
    = XMLFileUtil.findElement(xmlDomContent.getRootElement(),
    "manager",
    "name",
    "DBConnectionManager");
    if (managerElement != null) {
    //取得Element中的implementation屬性對(duì)象...
    serviceImplElement = managerElement.element("implementation");
    if (serviceImplElement != null) {
    //取這個(gè)屬性的值...
    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() {
    }
    }


    凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
    、轉(zhuǎn)載請(qǐng)注明來處和原文作者。非常感謝。

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

    Feedback

    # re: [Java]寫了一個(gè)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  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 无码专区AAAAAA免费视频| 国外亚洲成AV人片在线观看| 一级做a爰性色毛片免费| 亚洲?V乱码久久精品蜜桃| 久久免费视频99| 亚洲av日韩av永久在线观看| 亚洲AV综合色区无码另类小说| 免费观看的毛片大全| 中文字幕一区二区免费| 亚洲乱码无人区卡1卡2卡3| 亚洲国产女人aaa毛片在线| 亚洲精品无码激情AV| 美女巨胸喷奶水视频www免费| 亚洲AV午夜成人片| 最近最新的免费中文字幕| 亚洲码欧美码一区二区三区| 亚洲一区二区三区免费观看| 一区二区免费在线观看| 久久亚洲中文字幕无码| 亚洲va久久久久| 国产精品免费电影| 无码免费午夜福利片在线| 又粗又长又爽又长黄免费视频| 久久久久久亚洲精品影院| 亚洲AV美女一区二区三区| 亚洲精品456播放| 国产免费变态视频网址网站 | 精品国产_亚洲人成在线| 亚洲色WWW成人永久网址| 无人在线观看完整免费版视频| 一级毛片免费在线观看网站| 亚洲av日韩综合一区久热| 亚洲AV无码一区二区三区牛牛| 亚洲综合小说另类图片动图| 1区1区3区4区产品亚洲 | 边摸边脱吃奶边高潮视频免费| 精品亚洲国产成人| 亚洲午夜久久久久妓女影院 | 好男人视频在线观看免费看片| 免费无码成人AV在线播放不卡| 大地资源网高清在线观看免费|