java XML標記語言

来源:https://www.cnblogs.com/am0304/archive/2022/07/17/16486818.html
-Advertisement-
Play Games

XML 可擴展標記語言(Extensive Markup Language),標簽中的元素名是可以自己隨意寫,可拓展是相對於html來說 標記語言:由一對尖括弧括起來<內容>,就稱為標記,標簽;代碼都是由標簽組成,就稱為標記語言 作用 用來當做配置文件 xml的配置文件和properties的配置文 ...


XML

可擴展標記語言(Extensive Markup Language),標簽中的元素名是可以自己隨意寫,可拓展是相對於html來說

標記語言:由一對尖括弧括起來<內容>,就稱為標記,標簽;代碼都是由標簽組成,就稱為標記語言

作用

  • 用來當做配置文件
  • xml的配置文件和properties的配置文件的選用:
    • 如果配置的是單項數據,使用properties
    • 如果配置的是多項數據,使用xml

語法

文件尾碼

.xml

文檔聲明

version 是版本的意思, encoding 是編碼集

<?xml version='1.0' encoding='utf-8'?>

註釋

<!-- 註釋 -->

標簽

1、xml文件中有且只有一個根標簽

2、標簽中可以定義屬性,在給屬性賦值的時候,值要用引號括起來(單雙都可)

3、標簽名區分大小寫

4、標簽的閉合

  • <aaa></aaa> 有頭有尾
  • <bbb/> 自閉和

5、標簽名的命名規則

  • 可以由數字,字母,一些符號來組成
  • 開頭不能是數字和標點符號
  • 標簽名中不能有空格
    • 如:<aa a></aa a>
  • 標簽名不能是xml或者XML
    • 如:<xml></xml>

XML約束

DTD約束

文檔類型定義

內部引入

<!DOCTYPE books[
        <!ELEMENT books (book+)>
        <!ELEMENT book (name,price)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT price (#PCDATA)>
        ]>
<books>
    <book>
        <name>三國</name>
        <price>386</price>
    </book>
    <book>
        <name>水滸</name>
        <price>400</price>
    </book>
</books>

外部引入(本地)

dtd文件:books.dtd

<!ELEMENT books (book+)>
<!ELEMENT book (name,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>

引入

<!DOCTYPE books SYSTEM "books.dtd">

外部引入(網路)

<!DOCTYPE books PUBLIC "DTD名稱" "DTD文檔的URL">

XML解析

DOM解析

就是指先將xml文件一次性的載入進記憶體中,在記憶體中形成一個樹狀結構(dom樹)

優點:我們可以通過dom方式的解析,對xml文件中的數據進行增刪改查

缺點:如果樹太大了,非常占記憶體空間

SAX解析

Simple APIs for XML(簡單應用程式介面)

基於事件處理的,逐行掃描,逐行載入。

優點:逐行掃描,讀取一行,載入一行,載入完就扔了,不占用記憶體空間

缺點:執行過程不可逆,不能對數據進行增刪改操作,只能進行查詢操作,不能回頭了

JDOM解析

DOM4j解析

public static void main(String[] args) throws DocumentException {
    SAXReader saxReader = new SAXReader();
    //解析XML文件、獲取樹對象
    Document doc = saxReader.read(new File("java20210519/src/study/books.xml"));
    //獲取根標簽對象
    Element root = doc.getRootElement();
    //獲取根元素下的子元素對象集合
    List<Element> list = root.elements();
    for (Element element : list){
        //獲取該元素下的子元素name
        Element name = element.element("name");
        //獲取該元素下的子元素price
        Element price = element.element("price");
        //獲取name、price元素的文本信息
        System.out.println("名稱:" + name.getText() + ",價格:" + price.getText());
    }
}

常用API

Element對象
// 獲取所有的子標簽
List<Element> elements();
// 獲取元素的名字
String getName();
// 獲取標簽內的文本內容
String getText();
// 根據標簽名獲取指定第一個標簽對象
Element element(String name);
// 根據屬性名獲取屬性值
String attributeValue(String name);

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Linux系統磁碟管理 磁碟分區,格式化,掛載 可以先添加幾塊硬碟,記住要先關閉虛擬機再添加,此處我添加了四塊硬碟 此處是你當初創建虛擬機的時候選擇的磁碟類型,此處也需要與其一致 選擇創建新的硬碟 將其存儲為單個文件,並選擇大小 成功創建 fdisk分區 //生產分區建議: 如無特殊需求, 直接使用 ...
  • Color Wheel for Mac是一款可直接輸出Web顏色代碼的取色工具,通過方便的Hex/RGB/Float/HSL翻譯提供即時訪問標準Mac OS X的ColorWheel,任何網頁設計師的工具箱都應該有它,將它配置在工具欄上,並打開一個全局熱鍵,使用方便又快捷。 詳情:Color Whe ...
  • 許多有Mac的朋友問,Parallels Desktop 17能不能安裝Windows11呢?可以告訴你,非常的簡單。 如圖,安裝Windows 11出現問題,如圖: 這裡先事先說明一下:安裝win11必須是預覽版的,正式版的win11目前還不可以哦。 具體操作如下: 1、詳情虛擬機(M1和Inte ...
  • 還在尋找一款好用的終端模擬器?ZOC for Mac是一款適用於MAC平臺,眾所周知的telnet/SSH/SSH2客戶端和終端模擬器,ZOC Mac版的功能強大,如標簽會,鍵入命令歷史,回溯,多視窗的支持等等,和落到實處的模擬使它成為人們的首選工具! 詳情:ZOC for Mac(最好用的終端模擬 ...
  • 查找結構的進化 二分查找 二叉樹 二叉平衡樹 B-TREE :二叉平衡樹的基礎上,使載入一次節點,可以載入更多路徑數據,同時把查詢範圍縮減到更小 缺點:業務數據的大小可能遠遠超過了索引數據的大小,每次為了查找對比計算,需要把數據載入到記憶體以及 CPU 高速緩存中時,都要把索引數據和無關的業務數據全部 ...
  • 數據準備: --建表 create table customer_jia(CID int(4), Cname varchar(20), Csex varchar(2), Cage int(3), Cjob varchar(20), CCNO int(2) ); create table compan ...
  • Vue面試題總結(持續更新中) 題目參考鏈接 https://blog.csdn.net/weixin_45257157/article/details/106215158 由於已經有很多前輩深造VUE的某一塊知識,所以我也是大樹下好乘涼,進行總結與積累。 就有這篇博客,希望對各位面試求職的同學有所 ...
  • 首先是關於本人對一個新事物的理解路線 對html的認知: what:首先我得知道它是什麼?html是一門超文本標記語言,它不是一門編程語言 why:它為什麼會存在?它存在的意義是什麼?隨著互聯網的發展,人們通常通過手機、電腦等網路渠道獲取信息和生產生活,故它的存在是為了製作網頁 how:這門語言該怎 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...