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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...