下面我將以如下代碼來解釋下XML的寫法
<?xml version="1.0" encoding="UTF-8" ?> <Steam><steam id="1"><zhanghao>admin</zhanghao><mima>123</mima><num>120</num></steam><steam id="2"><zhanghao>admin</zhanghao><mima>234</mima><num>200</num></steam> </Steam>
?以上是我的XML代碼
<?xml version="1.0" encoding="UTF-8" ?>是XML文檔的聲明,一下是查到的XML作用
這串代碼在idea工具,打個“<x”就能出現了,后面是編譯格式是utf-8(中文)格式
<?xml version="1.0" encoding="UTF-8" ?>
?是XML聲明,它在XML文檔中起到幾個重要的作用:
-
指定XML版本:
version="1.0"
?表示該XML文檔遵循XML 1.0規范。XML有多個版本,但這個聲明指定了文檔使用的是第一個廣泛接受和實施的版本,即XML 1.0。 -
指定文檔編碼:
encoding="UTF-8"
?定義了文檔中字符的編碼方式。UTF-8是一種非常普遍且能夠表示多種語言的字符編碼方式。通過這個聲明,解析器知道如何正確地讀取和解釋文檔中的字符。 -
確認文檔是XML:這個聲明告訴解析器該文檔是一個XML文檔,而不是其他類型的文檔。這對于處理混合內容(例如,當服務器返回的內容可能是HTML、XML或其他類型)的客戶端來說尤其重要。
-
標準化:通過包含XML聲明,文檔遵循了XML標準,這使得文檔可以在不同的系統、平臺和應用程序之間更容易地交換和解析。
-
避免混淆:對于某些應用程序和解析器,如果沒有XML聲明,它們可能會混淆XML文檔與其他類型的文檔,如HTML。
總之,XML聲明是XML文檔的一個重要組成部分,它確保了文檔的正確解析和跨平臺的兼容性。在創建XML文檔時,通常建議始終包含XML聲明
所以說聲明一般不要省略
聲明完后,開始創建XML代碼,這個可以看成是對象的聲明,id是第幾個的意思,zhanghao是賬號的意思,mima是密碼的意思,num是數量的意思,steam是對象,都是我隨便起的。
然后我們看下test(測試類內容)
package com.bw.test; import com.bw.domain.Steam; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.junit.Test;import java.io.InputStream; import java.util.List;public class MyTest2 {@Testpublic void test2() throws DocumentException {InputStream resource = MyTest2.class.getClassLoader().getResourceAsStream("steam.xml");SAXReader reader = new SAXReader();Document read = reader.read(resource);Element element = read.getRootElement();List<Element> elements = element.elements();for (Element element1 : elements) {Steam s=new Steam();String id = element1.attributeValue("id");s.setId(new Integer(id));List<Element> elements1 = element1.elements();for (Element element2 : elements1) {String name = element2.getName();String val = element2.getTextTrim();if ("zhanghao".equals(name)){s.setZhanghao(val);} else if ("mima".equals(name)) {s.setMima(val);} else if ("num".equals(name)) {s.setNum(new Integer(val));}}System.out.println(s);}} }
?1. InputStream resource = MyTest2.class.getClassLoader().getResourceAsStream("steam.xml");
是獲取文件流;
steam.xml是上方xml文件的文件名
2.SAXReader reader = new SAXReader();是創建解析對象;
3.Document read = reader.read(resource);使用解析對象的方法將文件流變成文檔對象
4.Element element = read.getRootElement();獲取根標簽<Steam></Steam>
5.List<Element> elements = element.elements();獲取跟標簽的子標簽<Steam id="1"></Steam>;
<Steam id="2"></Steam>
以下是代碼產生的效果:
是不是很有意思!