Hasor 解析Xml

2018-10-08 09:16 更新

前面演示的大量 Hasor 的配置文件內(nèi)部機(jī)制,同時(shí)也像我們展示了 Hasor 讀取配置文件就是一個(gè)簡(jiǎn)單的表達(dá)式(例:hasor.packages

現(xiàn)在我們?cè)O(shè)想一下這樣的一組配置信息,我想讀取所有的 module :

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
    <hasor>
        ...
        <modules loadModule="${HASOR_LOAD_MODULE}" loadErrorShow="true">
            <module>net.hasor.web.valid.ValidWebPlugin</module>
            <module>net.hasor.web.render.RenderWebPlugin</module>
            <module>net.hasor.plugins.startup.StartupModule</module>
            <module>net.hasor.plugins.aop.AopModule</module>
        </modules>
        ...
    </hasor>
</config>


下面就介紹一下如何讀取這種配置,首先讀取這樣的配置信息主要有兩種方法:

  • 方法一:通過父節(jié)點(diǎn)解析Xml信息,具體如下:

  • XmlNode modules = env.getSettings().getXmlNode("hasor.modules");
    List<XmlNode> allModule = modules.getChildren("module");
    for (XmlNode modInfo : allModule){
      modInfo.getText();
    }
  • 方法二:考慮到我們的例子中 module 節(jié)點(diǎn)并沒有定義特殊的屬性,因此可以進(jìn)一步從上面代碼簡(jiǎn)化成如下:

  • XmlNode[] allModule = env.getSettings().getXmlNodeArray("hasor.modules.module");
    for (XmlNode modInfo : allModule){
      modInfo.getText();
    }

我們?cè)诜椒ǘ幕A(chǔ)上還可以在進(jìn)一步簡(jiǎn)化成一行代碼如下:

String[] allModules = env.getSettings().getStringArray("hasor.modules.module");

Hasor 的配置文件讀取十分強(qiáng)大,更多強(qiáng)大的方法,請(qǐng)開發(fā)者自行嘗試:Settings 接口。獲取這個(gè)接口的方式很多,您可以依賴注入,也可以通過 ApiBinder 接口拿到,也可以通過 AppContxt 接口獲取。這里不在詳解。


使用 Hasor 的配置文件讀取方式,單獨(dú)處理一個(gè)指定的 xml 文件


Hasor 的配置文件解析機(jī)制,好的是它可以獨(dú)立 Hasor 使用。您可以單獨(dú)使用 net.hasor.core.setting.InputStreamSettings 類去加載您的 xml 文件,然后以 Hasor 的方式去處理它。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)