<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            java語言

            Java高級:怎樣讀取和處理XML的配置文件

            時間:2025-05-15 19:16:19 java語言 我要投稿
            • 相關推薦

            Java高級:怎樣讀取和處理XML的配置文件

              Java高級:怎樣讀取和處理XML的配置文件呢?看了下面小編整理的內容你就知道怎么解決您的問題了,希望對您有所幫助!更多內容請關注應屆畢業生考試網!

              在我們的程序中,通常要有一些根據主機環境確定的變量.比如數據庫訪問用戶名和密碼,不同的主機可能設置不一樣.只要更改XML配置文件,就可以正常運行.

              localhost

              sqlname

              username

              password

              上面這個myenv.xml配置文件一般是放在tomcat的WEB-INF/classes目錄下.

              我們編制一個Java程序直接讀取,將dbhost dbuser dbpassword提取出來供其他程序訪問數據庫用.

              目前使用SAX比較的多,與DOM主要區別是 SAX是一行一行讀取XML文件進行分析,適合比較大文件,DOM是一次性讀入內存,顯然不能對付大文件.這里我們使用SAX解析,由于SAX解析器不斷在發展,網上有不少文章是針對老版本的.如果你使用JDK1.4 ,可以參考 使用SAX處理XML文檔 一文.這里的程序是根據其改進并且經過實踐調試得來的.

              對上面myenv.xml讀取的Java程序:

              import org.xml.sax.Attributes;

              import org.xml.sax.helpers.DefaultHandler;

              import org.xml.sax.SAXException;

              import java.util.Properties;

              //使用DefaultHandler的好處 是 不必陳列出所有方法,

              public class ConfigParser extends DefaultHandler {

              ////定義一個Properties 用來存放 dbhost dbuser dbpassword的值

              private Properties props;

              private String currentSet;

              private String currentName;

              private StringBuffer currentValue = new StringBuffer();

              //構建器初始化props

              public ConfigParser() {

              this.props = new Properties();

              }

              public Properties getProps() {

              return this.props;

              }

              //定義開始解析元素的方法. 這里是將中的名稱xxx提取出來.

              public void startElement(String uri, String localName, String qName, Attributes attributes)

              throws SAXException {

              currentValue.delete(0, currentValue.length());

              this.currentName =qName;

              }

              //這里是將之間的值加入到currentValue

              public void characters(char[] ch, int start, int length) throws SAXException {

              currentValue.append(ch, start, length);

              }

              //在遇到結束后,將之前的名稱和值一一對應保存在props中

              public void endElement(String uri, String localName, String qName) throws SAXException {

              props.put(qName.toLowerCase(), currentValue.toString().trim());

              }

              }

              上面的這個解析程序比較簡單吧? 其實解析XML就是這么簡單.

              現在我們已經將dbhost dbuser dbpassword的值localhost sqlname username password提取了出來.但是這只是在在解析器內部,我們的程序還不能訪問.需要再編制一個程序.

              import java.util.Properties;

              import javax.xml.parsers.SAXParser;

              import javax.xml.parsers.SAXParserFactory;

              import java.net.URL;

              public class ParseXML{

              //定義一個Properties 用來存放 dbhost dbuser dbpassword的值

              private Properties props;

              //這里的props

              public Properties getProps() {

              return this.props;

              }

              public void parse(String filename) throws Exception {

              //將我們的解析器對象化

              ConfigParser handler = new ConfigParser();

              //獲取SAX工廠對象

              SAXParserFactory factory = SAXParserFactory.newInstance();

              factory.setNamespaceAware(false);

              factory.setValidating(false);

              //獲取SAX解析

              SAXParser parser = factory.newSAXParser();

              //得到配置文件myenv.xml所在目錄. tomcat中是在WEB-INF/classes

              //下例中BeansConstants是用來存放xml文件中配置信息的類,可以自己代替或定義

              URL confURL = BeansConstants.class.getClassLoader().getResource(filename);

              try

              {

              //將解析器和解析對象myenv.xml聯系起來,開始解析

              parser.parse(confURL.toString(), handler);

              //獲取解析成功后的屬性 以后 我們其他應用程序只要調用本程序的props就可以提取出屬性名稱和值了

              props = handler.getProps();

              }finally{

              factory=null;

              parser=null;

              handler=null;

              }

              }

              }

              由于我們的XML文件是使用最簡單的形式 ,因此解析器相對簡單,但是這已經足夠對付我們的配置文件了.

            【Java高級:怎樣讀取和處理XML的配置文件】相關文章:

            java讀取解析xml文件實例08-05

            PHP如何使用DOM和simplexml讀取xml文檔07-22

            java讀取CSV的方法06-10

            Java讀取郵件的方法10-03

            java如何讀取CSV06-26

            java讀取CSV的方法大全09-12

            XML中的處理指令11-15

            如何利用java讀取網絡照片10-16

            java如何通過url讀取文件05-07

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院