首頁 >Java >java教程 >Java開發中讀取XML與properties設定檔的方法

Java開發中讀取XML與properties設定檔的方法

高洛峰
高洛峰原創
2017-01-12 10:27:031676瀏覽

相關閱讀:

使用Ajax進行檔案與其他參數的上傳功能(java開發)

1. XML檔:

什麼是XML? XML一般是指可擴展標記語言,標準通用標記語言的子集,是一種用於標記電子文件使其具有結構性的標記語言。

2.XML檔案的優點:

1)XML文件內容和結構完全分離。 
2)互通性強。 
3)規範統一。 
4)支援多種編碼。 
5)可擴充性強。

3.如何解析XML文檔:

XML在不同的語言中解析XML文檔都是一樣的,只不過實現的語法不一樣,基本的解析方式有兩種,一種是SAX方式,是按照XML文件的順序一步一步解析。另外一種的解析方式DOM方式,而DOM方式解析的關鍵就是節點。另外還有DOM4J、JDOM等方式。本文介紹的是DOM、DOM4J方式與封裝成一個工具類別的方式來讀取XML文件。

4.XML文件:

scores.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE students [
 <!ELEMENT students (student+)>
 <!ELEMENT student (name,course,score)>
 <!ATTLIST student id CDATA #REQUIRED>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT course (#PCDATA)>
 <!ELEMENT score (#PCDATA)>
]>
<students>
 <student id="11">
  <name>张三</name>
  <course>JavaSE</course>
  <score>100</score>
 </student>
 <student id="22"> 
  <name>李四</name>
  <course>Oracle</course>
  <score>98</score>
 </student>
</students>

   

5.DOM方式解析XML

public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
  //1.创建DOM解析器工厂
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  //2.由DOM解析器工厂创建DOM解析器
  DocumentBuilder db = dbf.newDocumentBuilder();
  //3.由DOM解析器解析文档,生成DOM树
  Document doc = db.parse("scores.xml");
  //4.解析DOM树,获取文档内容(元素 属性 文本)
  //4.1获取根元素scores
  NodeList scoresList = doc.getChildNodes();
  Node scoresNode = scoresList.item(1);
  System.out.println(scoresList.getLength());
  //4.2获取scores中所有的子元素student
  NodeList studentList = scoresNode.getChildNodes();
  System.out.println(studentList.getLength());
  //4.3对每个student进行处理
  for(int i=0;i<studentList.getLength();i++){
   Node stuNode = studentList.item(i);
   //System.out.println(stuNode.getNodeType());
   //输出元素的属性 id
   if(stuNode.getNodeType()==Node.ELEMENT_NODE){
    Element elem =(Element)stuNode;
    String id= elem.getAttribute("id");
    System.out.println("id------>"+id);
   }
   //输出元素的子元素 name course score
   NodeList ncsList = stuNode.getChildNodes();
   //System.out.println(ncsList.getLength() );
   for(int j=0;j<ncsList.getLength();j++){
    Node ncs = ncsList.item(j);
    if(ncs.getNodeType() == Node.ELEMENT_NODE){
      String name = ncs.getNodeName();
      //String value = ncs.getFirstChild().getNodeValue();//文本是元素的子节点,所以要getFirstChild
      String value = ncs.getTextContent();
      System.out.println(name+"----->"+value);
    }
   }
   System.out.println();
  }
 }

    

當然,無論我們是使用那種方式解析XML的,都需要導入jar包(千萬不要忘記)。

7.我自己的方式:

在實際開發的工程中,我們要善於使用工具類,將我們反覆使用的功能封裝成一個工具類,所以,下面的方式就是我在開發的過程中使用的方式.

7.1什麼是properties檔案:

7.1.1 從結構上:

.xml檔案主要是樹狀檔案。 

.properties檔案主要是以key-value鍵值對的形式存在

7.1.2 從彈性的角度來說:

.xml檔案要比.properties檔案的彈性讀取更高一些。


7.1.3 從便利的角度來說:

.properties檔案比.xml檔案設定更簡單。

7.1.4 從應用程度來說:

.properties檔案比較適合於小型簡單的項目,因為.xml更加靈活。

7.2自己的properties文件:

在我自己的專案中創建了一個path.properties文件,裡面用來存放我即將使用的路徑,以名字=值的方式存放。例如:

realPath = D:/file/

7.3 解析自己的.properties檔案:

public static void main(String[] args) throws DocumentException {
 //使用dom4j解析scores2.xml,生成dom树
 SAXReader reader = new SAXReader();
 Document doc = reader.read(new File("scores.xml")); 
 //得到根节点:students
 Element root = doc.getRootElement(); 
 //得到students的所有子节点:student
 Iterator<Element> it = root.elementIterator();
 //处理每个student
 while(it.hasNext()){
  //得到每个学生
  Element stuElem =it.next();
  //System.out.println(stuElem);
  //输出学生的属性:id
  List<Attribute> attrList = stuElem.attributes();
  for(Attribute attr :attrList){
   String name = attr.getName();
   String value = attr.getValue();
   System.out.println(name+"----->"+value);
  }
  //输出学生的子元素:name,course,score
  Iterator <Element>it2 = stuElem.elementIterator();
  while(it2.hasNext()){
   Element elem = it2.next();
   String name = elem.getName();
   String text = elem.getText();
   System.out.println(name+"----->"+text);
  }
  System.out.println();
 }
}

   

當我們使用之前,我們只需要給 

當我們使用之前,我們只需要給 

當我們使用之前,我們只需要給 

🎜當我們使用之前,我們只需要給 ATABASE_CONFI_FIDFIMLE. ,使用的時候,我們就可以直接使用類別名稱. getProperty(“realPath”);的方式就可以取得到在.properties檔案中的key為realPath的內容。 🎜🎜以上所述是小編給大家介紹的Java開發中讀取XML與properties設定檔的方法,希望對大家有幫助,如果大家有任何疑問歡迎給我留言,小編會及時回覆大家的! 🎜🎜更多Java開發中讀取XML與properties設定檔的方法相關文章請關注PHP中文網! 🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn