• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • xml概念語法解析

    標簽: 學習筆記

    XML

    	1. 概念
    	2. 語法
    	3. 解析
    

    XML:

    1. 概念:Extensible Markup Language 可擴展標記語言
    	* 可擴展:標簽都是自定義的。 <user>  <student>
    
    	* 功能
    		* 存儲數據
    			1. 配置文件
    			2. 在網絡中傳輸
    	* xml與html的區別
    		1. xml標簽都是自定義的,html標簽是預定義。
    		2. xml的語法嚴格,html語法松散
    		3. xml是存儲數據的,html是展示數據
    
    	* w3c:萬維網聯盟
    
    2. 語法:
    	* 基本語法:
    		1. xml文檔的后綴名 .xml
    		2. xml第一行必須定義為文檔聲明
    		3. xml文檔中有且僅有一個根標簽
    		4. 屬性值必須使用引號(單雙都可)引起來
    		5. 標簽必須正確關閉
    		6. xml標簽名稱區分大小寫
    	* 快速入門:
    
    <?xml version='1.0' ?>
    			<users>
    				<user id='1'>
    					<name>zhangsan</name>
    					<age>23</age>
    					<gender>male</gender>
    					<br/>
    				</user>
    				
    				<user id='2'>
    					<name>lisi</name>
    					<age>24</age>
    					<gender>female</gender>
    				</user>
    			</users>
    			
    		```

    組成部分
    1. 文檔聲明
    1. 格式:<?xml 屬性列表 ?>
    2. 屬性列表:
    * version:版本號,必須的屬性
    * encoding:編碼方式。告知解析引擎當前文檔使用的字符集,默認值:ISO-8859-1
    * standalone:是否獨立
    * 取值:
    * yes:不依賴其他文件
    * no:依賴其他文件
    2. 指令(了解):結合css的
    * <?xml-stylesheet type="text/css" href="a.css" ?>
    3. 標簽:標簽名稱自定義的
    * 規則:
    * 名稱可以包含字母、數字以及其他的字符
    * 名稱不能以數字或者標點符號開始
    * 名稱不能以字母 xml(或者 XML、Xml 等等)開始
    * 名稱不能包含空格
    4. 屬性:
    id屬性值唯一
    5. 文本:
    * CDATA區:在該區域中的數據會被原樣展示
    * 格式: <![CDATA[ 數據 ]]>

    ?在這里插入圖片描述

    	* 約束:規定xml文檔的書寫規則
    		* 作為框架的使用者(程序員):
    			1. 能夠在xml中引入約束文檔
    			2. 能夠簡單的讀懂約束文檔
    		
    		* 分類:
    			1. DTD:一種簡單的約束技術
    			2. Schema:一種復雜的約束技術
    
    
    		* DTD:
    			* 引入dtd文檔到xml文檔中
    				* 內部dtd:將約束規則定義在xml文檔中
    	代碼如下:
    
    <?xml version="1.0" encoding="UTF-8" ?>
    	<!--<!DOCTYPE students SYSTEM "student.dtd">-->
    	<!DOCTYPE students [
    	       <!ELEMENT students (student)+>
    	       <!ELEMENT student (name,age,sex)>
    	       <!ELEMENT name (#PCDATA)>
    	       <!ELEMENT age (#PCDATA)>
    	       <!ELEMENT sex (#PCDATA)>
    	       <!ATTLIST student number ID #REQUIRED>
    	       ]>
    	<students>
    	   <student number="s001">
    	       <name>zhangsan</name>
    	       <age>23</age>
    	       <sex>male</sex>
    	   </student>
    	   <student number="s002">
    	       <name>lisi</name>
    	       <age>24</age>
    	       <sex>female</sex>
    	   </student>
    	</students>
    		
    					
    	
    • 外部dtd:將約束的規則定義在外部的dtd文件中
      • 本地:
      • 網絡:
        代碼如下:
    <!ELEMENT students (student)+>
    	        <!ELEMENT student (name,age,sex)>
    	        <!ELEMENT name (#PCDATA)>
    	        <!ELEMENT age (#PCDATA)>
    	        <!ELEMENT sex (#PCDATA)>
    	        <!ATTLIST student number ID #REQUIRED>
    
    
    		
    * Schema:
    			* 引入:
    				1.填寫xml文檔的根元素
    				2.引入xsi前綴.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    				3.引入xsd文件命名空間. xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
    				4.為每一個xsd約束聲明一個前綴,作為標識  xmlns="http://www.itcast.cn/xml" 
    
    			<students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    				xmlns="http://www.itcast.cn/xml"
    				xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd">
    	外部約束:
    	<?xml version="1.0"?>
    <xsd:schema xmlns="http://www.itcast.cn/xml"
           xmlns:xsd="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.itcast.cn/xml" elementFormDefault="qualified">
       <xsd:element name="students" type="studentsType"/>
       <xsd:complexType name="studentsType">
           <xsd:sequence>
               <xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/>
           </xsd:sequence>
       </xsd:complexType>
       <xsd:complexType name="studentType">
           <xsd:sequence>
               <xsd:element name="name" type="xsd:string"/>
               <xsd:element name="age" type="ageType" />
               <xsd:element name="sex" type="sexType" />
           </xsd:sequence>
           <xsd:attribute name="number" type="numberType" use="required"/>
       </xsd:complexType>
       <xsd:simpleType name="sexType">
           <xsd:restriction base="xsd:string">
               <xsd:enumeration value="male"/>
               <xsd:enumeration value="female"/>
           </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="ageType">
           <xsd:restriction base="xsd:integer">
               <xsd:minInclusive value="0"/>
               <xsd:maxInclusive value="256"/>
           </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="numberType">
           <xsd:restriction base="xsd:string">
               <xsd:pattern value="heima_\d{4}"/>
           </xsd:restriction>
       </xsd:simpleType>
    </xsd:schema>
    

    代碼如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    	<!--
    	  1.填寫xml文檔的根元素
    	  2.引入xsi前綴.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	  3.引入xsd文件命名空間.  xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
    	  4.為每一個xsd約束聲明一個前綴,作為標識  xmlns="http://www.itcast.cn/xml"
    	 
    	 
    	-->
    	<a:students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	           xsi:schemaLocation="
    	           http://www.itcast.cn/xml  student.xsd
    	           http://cxf.apache.org/bindings/soap
    	           "
    	           xmlns:a="http://www.itcast.cn/xml"
    	           xmlns:b="http://cxf.apache.org/bindings/soap"
    	>
    	   <a:student number="heima_0001">
    	       <a:name>zhangsan</a:name>
    	       <a:age>55</a:age>
    	       <a:sex>male</a:sex>
    	   </a:student>
    	</a:students>		
    
    
    ?	
    
    	
    1. 解析:操作xml文檔,將文檔中的數據讀取到內存中
      * 操作xml文檔
      1. 解析(讀取):將文檔中的數據讀取到內存中
      2. 寫入:將內存中的數據保存到xml文檔中。持久化的存儲

       * 解析xml的方式:
       	1. DOM:將標記語言文檔一次性加載進內存,在內存中形成一顆dom樹
       		* 優點:操作方便,可以對文檔進行CRUD的所有操作
       		* 缺點:占內存
       	2. SAX:逐行讀取,基于事件驅動的。
       		* 優點:不占內存。
       		* 缺點:只能讀取,不能增刪改
      
       * xml常見的解析器:
       	1. JAXP:sun公司提供的解析器,支持dom和sax兩種思想
       	2. DOM4J:一款非常優秀的解析器
       	3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。
       	4. PULL:Android操作系統內置的解析器,sax方式的。
      
      
       * Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。
       	
       Jsoup的主要功能	
       1)從一個URL,文件或字符串中解析HTML
       2)使用DOM或CSS選擇器來查找、取出數據
       3)可操作HTML元素、屬性、文本
       注意:jsoup是基于MIT協議發布的,可放心使用于商業項目。
       	* 快速入門:
       		* 步驟:
       			1. 導入jar包
       			2. 獲取Document對象
       			3. 獲取對應的標簽Element對象
       			4. 獲取數據
      
      • 代碼:
    package jsoup;
    	import org.jsoup.Jsoup;
    	import org.jsoup.nodes.Document;
    	import org.jsoup.nodes.Element;
    	import org.jsoup.select.Elements;
    	import java.io.File;
    	import java.io.IOException;
    	public class Demo01_jsoup {
    	   public static void main(String[] args) throws IOException {
    	//        1.導包
    	//        2.獲取document對象,根據xml文檔實現
    	       //2.1獲取student.xml的path
    	       //xxx.class.getClassLoader().getResource(“”).getPath();
    	       //獲取src資源文件編譯后的路徑(即classes路徑)
    	       //xxx.class.getClassLoader().getResource(“文件”).getPath();
    	       //獲取classes路徑下“文件”的路徑
    	       String path = Demo01_jsoup.class.getClassLoader().getResource("jsoup/student.xml").getPath();
    	       //2.2解析xml文檔,加載文檔進內存,獲取dom樹
    	       Document document = Jsoup.parse(new File(path), "utf-8");
    	//        3.獲取元素對象Element
    	       Elements elements = document.getElementsByTag("name");
    	       System.out.println(elements.size());
    	       //3.1獲取第一個name的Element對象
    	       Element element = elements.get(0);
    	//        //3.2獲取數據
    	//        對于一個元素中的文本,可以使用Element.text()方法
    	       String name = element.text();
    	       System.out.println(name);
    	   }
    	}
    	
    	
    		* 對象的使用:
    			1. Jsoup:工具類,可以解析html或xml文檔,返回Document
    				* parse:解析html或xml文檔,返回Document
    					* parse?(File in, String charsetName):解析xml或html文件的。
    					* parse?(String html):解析xml或html字符串
    					* parse?(URL url, int timeoutMillis):通過網絡路徑獲取指定的html或xml的文檔對象
    	代碼如下:
    	package xml解析;
    	
    	
    	import org.jsoup.Jsoup;
    	import org.jsoup.nodes.Document;
    	import org.jsoup.nodes.Element;
    	import org.jsoup.select.Elements;
    	import java.io.File;
    	import java.io.IOException;
    	import java.net.URL;
    	public class jsoup_jsoup對象 {
    	   public static void main(String[] args) throws IOException {
    	
    	
    	       //2.1獲取student.xml的path
    	       //xxx.class.getClassLoader().getResource(“”).getPath();
    	       //獲取src資源文件編譯后的路徑(即classes路徑)
    	       //xxx.class.getClassLoader().getResource(“文件”).getPath();
    	       //獲取classes路徑下“文件”的路徑
    	
    	
    	       /*
    	        * parse:解析html或xml文檔,返回Document
    	        *  parse(File in, String charsetName):解析xml或html文件的。
    	        *  parse(String html):解析xml或html字符串
    	        *   parse(URL url, int timeoutMillis):通過網絡路徑獲取指定的html或xml的文檔對象
    	        *
    	        *
    	        * */
    	       String path = jsoup.Demo01_jsoup.class.getClassLoader().getResource("jsoup/student.xml").getPath();
    	       //2.2解析xml文檔,加載文檔進內存,獲取dom樹
    	       //第一種方法
    	//        parse(File in, String charsetName):解析xml或html文件的。
    	       Document document = Jsoup.parse(new File(path), "utf-8");
    	       //System.out.println(document);
    	       //第二種方法
    	//        parse(String html):解析xml或html字符串
    	       String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
    	               "\n" +
    	               "<students>\n" +
    	               "\n" +
    	               "    <student number=\"heima_0001\">\n" +
    	               "        <name>zhangsan</name>\n" +
    	               "        <age>55</age>\n" +
    	               "        <sex>male</sex>\n" +
    	               "    </student>\n" +
    	               "    <student number=\"heima_0002\">\n" +
    	               "        <name>lisi</name>\n" +
    	               "        <age>55</age>\n" +
    	               "        <sex>male</sex>\n" +
    	               "    </student>\n" +
    	               "\n" +
    	               "</students>";
    	       Document document1 = Jsoup.parse(str);
    	       //System.out.println(document1);
    	       //第三種方法
    	//        parse(URL url, int timeoutMillis):通過網絡路徑獲取指定的html或xml的文檔對象
    	//        int timeoutMillis 多少秒無響應則返回
    	       URL url = new URL("https://www.baidu.com");
    	       Document document2 = Jsoup.parse(url, 10000);
    	       System.out.println(document2);
    	
    	
    	   }
    	}
    	
    			
    			
    1. Document:文檔對象。代表內存中的dom樹
      • 獲取Element對象
      • getElementById?(String id):根據id屬性值獲取

    唯一的element對象
    * getElementsByTag?(String tagName):根據標簽名稱獲取元素對象集合
    * getElementsByAttribute?(String key):根據屬性名稱獲取元素對象集合
    * getElementsByAttributeValue?(String key, String value):根據對應的屬性名和屬性值獲取元素對象集合
    代碼如下:

    package xml解析;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    import java.io.File;
    import java.io.IOException;
    public class jsoup_document對象 {
    public static void main(String[] args) throws IOException {
    /*
    * 2. Document:文檔對象。代表內存中的dom樹
    * 獲取Element對象
    * getElementById(String id):根據id屬性值獲取唯一的element對象
    * getElementsByTag(String tagName):根據標簽名稱獲取元素對象集合
    * getElementsByAttribute(String key):根據屬性名稱獲取元素對象集合
    * getElementsByAttributeValue(String key, String value):根據對應的屬性名和屬性值獲取元素對象集合
    * */
    String path = jsoup.Demo01_jsoup.class.getClassLoader().getResource(“jsoup/student.xml”).getPath();
    //2.2解析xml文檔,加載文檔進內存,獲取dom樹
    // parse(File in, String charsetName):解析xml或html文件的。
    Document document = Jsoup.parse(new File(path), “utf-8”);
    // * getElementsByTag(String tagName):根據標簽名稱獲取元素對象集合
    Elements elementsByTag = document.getElementsByTag(“student”);
    System.out.println(elementsByTag);
    System.out.println("-------------");
    // getElementsByAttribute(String key):根據屬性名稱獲取元素對象集合
    Elements name = document.getElementsByAttribute(“id”);
    System.out.println(name);
    System.out.println("--------------");
    // getElementById(String id):根據id屬性值獲取唯一的element對象
    Element elementById = document.getElementById(“001”);
    System.out.println(elementById);
    System.out.println("--------------");
    // getElementsByAttributeValue(String key, String value):根據對應的屬性名和屬性值獲取元素對象集合
    Elements id = document.getElementsByAttributeValue(“id”, “001”);
    System.out.println(id);

    }
    }

    1. Elements:元素Element對象的集合。可以當做 ArrayList來使用
      4. Element:元素對象
      1. 獲取子元素對象
      * getElementById?(String id):根據id屬性值獲取唯一的element對象
      * getElementsByTag?(String tagName):根據標簽名稱獲取元素對象集合
      * getElementsByAttribute?(String key):根據屬性名稱獲取元素對象集合
      * getElementsByAttributeValue?(String key, String value):根據對應的屬性名和屬性值獲取元素對象集合

      1. 獲取屬性值
        * String attr(String key):根據屬性名稱獲取屬性值
      2. 獲取文本內容
        * String text():獲取文本內容
        * String html():獲取標簽體的所有內容(包括字標簽的字符串內容)
        代碼如下:
    	package xml解析;
    	import org.jsoup.Jsoup;
    	import org.jsoup.nodes.Document;
    	import org.jsoup.nodes.Element;
    	import org.jsoup.select.Elements;
    	import java.io.File;
    	import java.io.IOException;
    	public class jsoup_element {
    	   public static void main(String[] args) throws IOException {
    	       /*
    	       * 3. Elements:元素Element對象的集合。可以當做 ArrayList<Element>來使用
    	     4. Element:元素對象
    	        1. 獲取子元素對象
    	           * getElementById(String id):根據id屬性值獲取唯一的element對象
    	           * getElementsByTag(String tagName):根據標簽名稱獲取元素對象集合
    	           * getElementsByAttribute(String key):根據屬性名稱獲取元素對象集合
    	           * getElementsByAttributeValue(String key, String value):根據對應的屬性名和屬性值獲取元素對象集合
    	        2. 獲取屬性值
    	           * String attr(String key):根據屬性名稱獲取屬性值
    	        3. 獲取文本內容
    	           * String text():獲取文本內容
    	           * String html():獲取標簽體的所有內容(包括字標簽的字符串內容)
    	       * */
    	       String path = jsoup.Demo01_jsoup.class.getClassLoader().getResource("jsoup/student.xml").getPath();
    	       //2.2解析xml文檔,加載文檔進內存,獲取dom樹
    	       // parse(File in, String charsetName):解析xml或html文件的。
    	       Document document = Jsoup.parse(new File(path), "utf-8");
    	       Elements name = document.getElementsByTag("name");
    	       System.out.println(name.size());
    	       System.out.println("-------");
    	       Element ele_student = document.getElementsByTag("student").get(0);
    	       Elements ele_name = ele_student.getElementsByTag("name");
    	       System.out.println(ele_name.size());
    	       System.out.println("-----------");
    	
    	
    	       String number = ele_student.attr("number");
    	       System.out.println(number);
    	       System.out.println("-------");
    	       String text = ele_name.text();
    	       String html = ele_name.html();
    	       System.out.println(text);
    	       System.out.println(html);
    	
    	
    	   }
    	}
    			
    			
    
    
    ?			

    在這里插入圖片描述

    		5. Node:節點對象
    			* 是Document和Element的父類
    	* 快捷查詢方式:
    		1. selector:選擇器
    			* 使用的方法:Elements	select?(String cssQuery)
    				* 語法:參考Selector類中定義的語法
    		
    			* 代碼:
    
    package jsoup;
    	import org.jsoup.Jsoup;
    	import org.jsoup.nodes.Document;
    	import org.jsoup.select.Elements;
    	import java.io.File;
    	import java.io.IOException;
    	public class jsoup_selector快速查詢 {
    	   public static void main(String[] args) throws IOException {
    	       /**
    	        *1. selector:選擇器
    	        *           * 使用的方法:Elements   select(String cssQuery)
    	        *              * 語法:參考Selector類中定義的語法
    	        * */
    	       String path = jsoup.Demo01_jsoup.class.getClassLoader().getResource("jsoup/student.xml").getPath();
    	       //2.2解析xml文檔,加載文檔進內存,獲取dom樹
    	       // parse(File in, String charsetName):解析xml或html文件的。
    	       Document document = Jsoup.parse(new File(path), "utf-8");
    	       //3.查name標簽
    	       Elements elements = document.select("name");
    	       System.out.println(elements);
    	       System.out.println("=========");
    	       //4.查詢id為001的元素
    	       Elements element1 = document.select("#001");
    	       System.out.println(element1);
    	       //5.獲取student標簽并且number屬性值為heima_0001的aged的子標簽
    	       //5.1獲取student標簽并且number屬性值為heima_0001
    	       Elements number = document.select("student[number=\"heima_0001\"]");
    	       System.out.println(number);
    	       System.out.println("=============");
    	       //5.2 獲取student標簽并且number屬性值為heima_0001的aged的子標簽
    	       Elements age = document.select("student[number=\"heima_0001\"] >age");
    	       System.out.println(age);
    	   }
    	}
    	
    	
    	
    1. XPath:XPath即為XML路徑語言,它是一種用來確定XML(標準通用標記語言的子集)文檔中某部分位置的語言
      * 使用Jsoup的Xpath需要額外導入jar包。
      * 查詢w3cshool參考手冊,使用xpath的語法完成查詢
      代碼如下:
             package jsoup;
    	import cn.wanghaomiao.xpath.exception.XpathSyntaxErrorException;
    	import cn.wanghaomiao.xpath.model.JXDocument;
    	import cn.wanghaomiao.xpath.model.JXNode;
    	import org.jsoup.Jsoup;
    	import org.jsoup.nodes.Document;
    	import java.io.File;
    	import java.io.IOException;
    	import java.util.List;
    	public class jsoup_Xpath {
    	   public static void main(String[] args) throws IOException, XpathSyntaxErrorException {
    	//        XPath:XPath即為XML路徑語言,它是一種用來確定XML(標準通用標記語言的子集)文檔中某部分位置的語言
    	//                * 使用Jsoup的Xpath需要額外導入jar包。
    	//       * 查詢w3cshool參考手冊,使用xpath的語法完成查詢
    	       //1.獲取student.xml的path
    	       String path = jsoup_Xpath.class.getClassLoader().getResource("jsoup/student.xml").getPath();
    	       //2.獲取Document對象
    	       Document document = Jsoup.parse(new File(path), "utf-8");
    	       //3.根據document對象,創建JXDocument對象
    	       JXDocument jxDocument = new JXDocument(document);
    	       //4.結合xpath語法查詢
    	       //4.1查詢所有student標簽
    	       List<JXNode> jxNodes = jxDocument.selN("//student");
    	       for (JXNode jxNode : jxNodes) {
    	           System.out.println(jxNode);
    	       }
    	       System.out.println("--------------------");
    	       //4.2查詢所有student標簽下的name標簽
    	       List<JXNode> jxNodes2 = jxDocument.selN("//student/name");
    	       for (JXNode jxNode : jxNodes2) {
    	           System.out.println(jxNode);
    	       }
    	       System.out.println("--------------------");
    	       //4.3查詢student標簽下帶有id屬性的name標簽
    	       List<JXNode> jxNodes3 = jxDocument.selN("//student/name[@id]");
    	       for (JXNode jxNode : jxNodes3) {
    	           System.out.println(jxNode);
    	       }
    	       System.out.println("--------------------");
    	       //4.4查詢student標簽下帶有id屬性的name標簽 并且id屬性值為itcast
    	       List<JXNode> jxNodes4 = jxDocument.selN("//student/name[@id='itcast']");
    	       for (JXNode jxNode : jxNodes4) {
    	           System.out.println(jxNode);
    	       }
    	
    	
    	   }
    	
    	
    ystem.out.println("--------------------");
    	       //4.3查詢student標簽下帶有id屬性的name標簽
    	       List<JXNode> jxNodes3 = jxDocument.selN("//student/name[@id]");
    	       for (JXNode jxNode : jxNodes3) {
    	           System.out.println(jxNode);
    	       }
    	       System.out.println("--------------------");
    	       //4.4查詢student標簽下帶有id屬性的name標簽 并且id屬性值為itcast
    	       List<JXNode> jxNodes4 = jxDocument.selN("//student/name[@id='itcast']");
    	       for (JXNode jxNode : jxNodes4) {
    	           System.out.println(jxNode);
    	       }
    	
    	
    	   }
    	
    	
    	}
    版權聲明:本文為qq_42193015原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_42193015/article/details/105812330

    智能推薦

    XML解析

    1. Java中配置文件的三種配置位置及讀取方式 1.1.讀取同級目錄下的配置文件 1.2.讀取項目根路徑下的配置文件 輸出 1.3.WEB-INF(或其子目錄下)寫一個servlet 輸出 3. dom4j+xpath解析xml文件 進行dom4j解析XML文件的時候需要導入以下包 案例 輸出...

    XML解析

    一、dom方法  文檔對象模型,方法擅長小規模的讀和寫 處理方式是將整個的xml作為一個樹結構的方法是讀入內存來操作和解析,解析大量數據文件時會遇到內存泄漏及程序崩潰的風險。 dom寫方法: 1.先通過此方法創建一個document節點 2.通過創建節點 Element docx = document.createElement("document");、創建屬性do...

    XML解析

    什么是xml文件?筆者認為語言描述往往是晦澀的,有時候非但不能達到某種效果,反而令人生畏。不如我們先直接給出一個xml文件。 xml文件有兩種書寫方式(用標簽和用屬性),這里我們推薦用屬性。 對xml文件的解析可以實現對xml文件的增刪改查,這篇博文只實現了對xml的”查“功能。 為了輸出的美觀,給出一個StudentInfo類 再給出真正用來解析xml文件的類 執行結果 ...

    XML解析

    XML文件解析 首先我以“學生信息”舉例,給一個xml文件的代碼: student.tag.xml 再給另一個xml文件: student.att.xml 前一種著重使用標簽,第二種方式綜合屬性和標簽。這兩種都可以表達學生信息,沒有哪種是標準方式。 分別給出兩個xml文件的解析類: TestParseTag.java TestParseAttribute.java 觀察上面...

    Xml解析

    Android基礎——XML數據的三種解析方式 本篇文章包含以下內容: XML數據的Dom解析 XML數據的Sax解析 XML數據的Pull解析 Activity中使用三種解析 Sax解析與Pull解析區別 三種解析方式的步驟: 在Assets文件夾中模擬創建XML數據 創建對應XML的Bean對象 開始解析 XML數據的Dom解析 DOM解析XML文件時,會將XML文件的...

    猜你喜歡

    xml解析

    JAXB 1.@XmlRootElement,用于類級別的注解,對應xml的跟元素。通過name屬性定義這個根節點的名稱。 2.@XmlAccessorType,定義映射這個類中的何種類型都需要映射到xml。(如果不存在@XmlAccessorType,默認使用XmlAccessType.PUBLIC_MEMBER注解)   參數:XmlAccessType.FIELD: java對象中的所有成員...

    xml解析

    DOM解析原理及結構模型: DOM中的核心概念就是節點,在XML文檔中的元素、屬性、文本等,在DOM中都是節點! 具體Demo: beans.xml內容是: 輸出:...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    精品国产乱码久久久久久蜜桃不卡