欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 值Document解析xml詳細(xì)介紹

 更新時間:2017年05月05日 10:11:08   投稿:lqh  
這篇文章主要介紹了java 值Document解析xml詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下

java 值Document解析xml詳細(xì)介紹

使用jar包:jdom.jar

配置文件格式 global.xml

這里寫圖片描述

一、獲取輸入的值組成的結(jié)點

我們將每個結(jié)點使用“.” 拼接起來, 如結(jié)點i ,拼接為abc.def.i, 注意不包含root。解析每個結(jié)點的名字。

 /**
   * 獲取對應(yīng)結(jié)點的名字
   * @param name  不包含root結(jié)點的拼接,ie: abc.def.i
   * @return
   */
  private String[] parsePropertyName(String name) {
    //結(jié)點序號從0開始
    int size = name.split("\\.").length;

    String[] parms =name.split("\\.");
        return parms;
  }

二、獲取對應(yīng)結(jié)點的值

2.1、結(jié)點為<name valueName=”value123”>的形式

 /**
   * abc.def.i結(jié)點下有個結(jié)點為:
   * <name valueName="value123">
   * 獲取對應(yīng)結(jié)點的value<br>
   * @param name 結(jié)點的值(name,是不包含root結(jié)點, 使用"."拼接的, ie: abc.def.i)
   * @param defaultName 沒有獲取到該節(jié)點內(nèi)容, 返回默認(rèn)值
   * @return
   */
  public synchronized String getPropertyValue(String name, String valueName) {
    //獲取根結(jié)點對象
    Element element = doc.getRootElement();
    //獲取各級結(jié)點對應(yīng)的屬性
    String[] parms = parsePropertyName(name);
    for (String parm : parms) {
      element = element.getChild(parm);
    }
    //得到無兒子結(jié)點的element的屬性值
    return element.getAttributeValue(valueName);
  }

2.2. 結(jié)點為 <i>8</i>的形式

首先從緩存中獲取改改結(jié)點的值, 如果沒有,在從配置文件中讀取,

/**
   * 獲取結(jié)點的值
   * &lt;i&gt;8&lt;/i&gt;
   * @param name 葉子結(jié)點的值(name,是不包含root結(jié)點, 使用"."拼接的, ie: abc.def.i)
   * @return
   */
  public synchronized String getProperty(String name) {
    //先從緩存中獲取
    String value = cacheMap.get(name);
    if (value != null) {
      return value;
    }

    Element element = getElementByName(name);
    if (element == null) {
      return null;
    }
    //獲取value
    value = element.getText();
    //緩存
    cacheMap.put(name, value);
    return value;
  }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論