xml的簡單應用--讀與寫

簡單講解:java

XML  eXtensible Markup Language 可擴展標記語言       做用:保存數據,用於數據的傳遞       經常使用於JAVA中框架的配置文件 一、XML的語法(掌握)     a、xml 文件的第一行爲聲明      <?xml version="" encoding=""?>      <?xml:聲明當前文檔爲xml文檔      version:版本號,1.0,1.1      encoding:編碼  b、xml文件中總會有一對根元素  c、xml的標記必須有結尾  d、xml元素必須有正確的嵌套  e、實體   <:&lt;   >:&gt;   &:&amp;  f、CDATA區:存儲帶有特殊字符的文本數據   <![CDATA[   ......   ]]>  g、註釋  h、xml標記名區分大小寫,屬性值必須使用""或'',     屬性一般須要給屬性賦值      知足xml文件語法的要求xml文件,稱爲格式良好的xml文件    xml文檔的解析器:瀏覽器,myeclipse,xml spy    二、DTD(Schema)(瞭解)     Document Type Definition    做用:限制xml文件的結構       編寫DTD,能夠在xml文件內部,也能夠定義單獨的    DTD文件       引入:DTD    a、引入必定範圍內的DTD    <!DOCTYPE 根元素 SYSTEM URL>    b、引入一個公共的DTD    <!DOCTYPE 根元素 PUBLIC "名字" URL>   
   dtd,xml需求:    根元素:struts    struts子元素:package,global-results零個或多個    package元素中有三個屬性,name,extends,namespace    global-results中有兩個屬性,name,type       package子元素:action,零個或多個    action中三個屬性:name(必須有),class(必須有),method       action子元素:result,零個或多個    result中有兩個屬性:name(必須有),type      <!ELEMENT struts .....>    .........    <!ATTLIST..... >    三、JAVA 解析XML(掌握)
 a、解析XML,獲取數據  b、java中的數據寫入到XML文件中    JAVA中提供兩種解析方式  DOM 解析  xml中的dom  java  SAX 解析    jdom/dom4j瀏覽器

實例代碼:框架

TestDom4jWrite.javadom

package com.tarena.tts;eclipse

import java.io.FileOutputStream;ide

import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.XMLWriter;編碼

public class TestDom4jWrite {  public static void main(String[] args) throws Exception {   // 建立一個空白的Document   Document doc = DocumentHelper.createDocument();   Element root = doc.addElement("books");   for (int i = 0; i < 1000; i++) {    Element book = root.addElement("book");    book.addElement("name").setText("Name" + i);    book.addElement("price").setText((int) (Math.random() * 100) + "");   }spa

XMLWriter writer = new XMLWriter(new FileOutputStream(     "d:/books.xml"));   writer.write(doc);   writer.close();  } }xml

TestDom4jRead.javaip

package com.tarena.tts;

import java.io.FileInputStream; import java.util.List;

import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader;

public class TestDom4jRead {   public static void main(String[] args) throws Exception {     // SAXReader 用於讀取XML文檔     SAXReader reader = new SAXReader();     // Document 用於封裝整個XML文檔     Document doc = reader.read(new FileInputStream("d:/books.xml"));     // Element 用於封裝元素     Element root = doc.getRootElement();

//System.out.println(root.getName());     // List list = root.elements();     List<Element> bookList = root.elements("book");     for (Element book : bookList) {       Element name = (Element)book.elements("name").get(0);       System.out.println(name.getText());     }

} } TestSAX.java

package com.tarena.tts;

import java.io.FileInputStream;

import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.AttributeList; import org.xml.sax.HandlerBase; import org.xml.sax.SAXException;

public class TestSAX {   public static void main(String[] args) throws Exception {     SAXParserFactory factory = SAXParserFactory.newInstance();     SAXParser parser = factory.newSAXParser();     parser.parse(new FileInputStream("d:/books.xml"), new MyHandler());

}

}

class MyHandler extends HandlerBase {   @Override   public void startElement(String name, AttributeList attributes)       throws SAXException {     System.out.println(name + "開始");   }

@Override   public void endElement(String name) throws SAXException {     System.out.println(name + "結束");   }

}

TestXPath.java

package com.tarena.tts;

import java.io.FileInputStream; import java.util.List;

import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader;

public class TestXPath {  public static void main(String[] args) throws Exception {   /*    * XPath...    */   SAXReader reader = new SAXReader();   Document doc = reader.read(new FileInputStream("d:/books_new.xml"));

List<Element> list = doc     .selectNodes("/books/book[price>=80 and price<90]/name");

for (Element name : list) {    System.out.println(name.getText());   }

} }

運行環境須要Jar包:

dom4j-1.6.1.jar    jaxen-1.1-beta-6.jar

相關文章
相關標籤/搜索