日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xml中的Document和Attribute

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xml中的Document和Attribute 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Document

導入dom4j的步驟

  • 去官網下載 zip 包。http://www.dom4j.org/
  • 在項目中創建一個文件夾:lib
  • 將dom4j-2.1.1.jar文件復制到 lib 文件夾
  • 在jar文件上點右鍵,選擇 Add as Library -> 點擊OK
  • 在類中導包使用
  • 得到Document對象

    步驟:

    文件Contact.xml放在src目錄下

  • 創建一個SAXReader對象,用于讀取 xml 文件
  • 從類路徑下加載xml文件,得到輸入流對象
  • 通過 SAXReader對象的read(InputStream in )方法,從輸入流中讀取,生成文檔對象
  • 代碼

    /**1. 得到文檔對象2. 得到根元素*/public static void main(String[] args) throws FileNotFoundException, DocumentException {//1. 創建類: 讀取XML文件SAXReader reader = new SAXReader();//不建議這么寫//FileInputStream in = new FileInputStream("D:\\IdeaWork\\JavaEE105\\day23-xml\\src\\Contacts.xml");//src目錄就是編譯以后的類路徑,從類路徑下得到輸入。InputStream in = Demo3Document.class.getResourceAsStream("/Contacts.xml");//2.通過reader來讀取xml, 生成了一個document對象Document document = reader.read(in);//3. 輸出文檔System.out.println(document);//4. 得到文檔以后,通過文檔得到根元素Element rootElement = document.getRootElement();System.out.println(rootElement);}

    Document常用方法

    方法名功能說明
    Element getRootElement()通過文檔對象得到根元素
    String getName()獲取元素名
    List<Element> elements()獲取所有子元素
    List<Element> elements(String name)獲取知名名字的多個子元素

    2.Attribute

    Attribute常用方法:

    方法名功能說明
    String getName()得到屬性的名字
    String getValue()得到屬性的值

    得到屬性值的兩種方式

  • 先得到Attribute對象,再通過Attribute對象得到屬性的值
  • 通過方法attributeValue()直接得到屬性值
  • 案例:

  • 使用2種方式,得到contact上id屬性值
  • 在contact元素上添加一個vip的屬性值為true/false,得到contact上所有的屬性名和屬性值
  • 效果

    代碼:

    public static void main(String[] args) throws DocumentException {//1. 創建SAXReaderSAXReader reader = new SAXReader();//2. 調用read 方法,讀取 xml 文件Document document = reader.read(Demo4Attribute.class.getResourceAsStream("/Contacts.xml"));//3. 得到根元素Element rootElement = document.getRootElement();//4. 獲得第1個contact元素對象Element contact = rootElement.element("contact");//5. 通過方式1:得到contact上id屬性值Attribute idAttr = contact.attribute("id");String idValue = idAttr.getValue();System.out.println(idValue);//6. 通過方式2:得到contact上id屬性值String id = contact.attributeValue("id");System.out.println(id);//7. 得到contact上所有的屬性名和屬性值List<Attribute> attributes = contact.attributes();for (Attribute attribute : attributes) {System.out.println("屬性名:" + attribute.getName());System.out.println("屬性值:" + attribute.getValue());}}

    獲取文本內容
    通過元素對象得到文本字符串得到文本元素的前提:先得到元素對象

    • 注意:

    空格、換行、制表符:也是屬于文本的一部分,所以在解析xml文件的時候,格式化XML文件要注意。

    元素中得到文本有關的方法

    Element**元素中的方法說明
    String getText()得到元素中文本
    String elementTextTrim(元素名)得到子元素中文本,去掉先后空格
    String elementText(元素名)得到子元素中文本

    需求
    得到第1個contact中的name元素,輸出name元素的文本。分別通過下面三個方法得到:

  • 通過getText()方法得到
  • 直接得到元素的內容
  • 得到去掉空格的文本
  • 代碼;

    public static void main(String[] args) throws DocumentException {// 1.創建SAXReaderSAXReader reader = new SAXReader();// 2.調用read 方法,讀取 xml 文件Document document = reader.read(Demo5Text.class.getResourceAsStream("/Contacts.xml"));// 3.得到根元素Element rootElement = document.getRootElement();// 得到contact標簽Element contact = rootElement.element("contact");// 得到name標簽中的文本Element name = contact.element("name");System.out.println(name.getText());// 得到子元素的文本System.out.println(contact.elementText("name"));// 得到子元素的文本并且去掉前后空格System.out.println(contact.elementTextTrim("name"));}

    XML解析案例

    目標

    利用 Dom4j 的知識,將Contact.xml 文件中的聯系人數據封裝成List集合,其中每個元素是實體類Contact。打印輸出 List 中的每個元素。

    運行效果

    數據準備

    Contact.xml

    <?xml version="1.0" encoding="UTF-8"?> <contactList><contact id="1"><name>潘金蓮</name><gender></gender><email>panpan@itcast.cn</email></contact><contact id="2"><name>武松</name><gender></gender><email>wusong@itcast.cn</email></contact><contact id="3"><name>武大狼</name><gender></gender><email>wuda@itcast.cn</email></contact> </contactList>
    Contact.java實體類
    // 聯系人實體類 public class Contact {private int id;private String name;private String gender;private String email;// 省略構造方法get、set、tostring}

    代碼:

    public static void main(String[] args) throws DocumentException {//1. 得到SaxReaderSAXReader reader = new SAXReader();//2. 得到文檔對象Document document = reader.read(Demo6Contact.class.getResourceAsStream("/Contact.xml"));//3. 得到根元素Element rootElement = document.getRootElement();//4. 創建集合List<Contact> list = new ArrayList<>();//5. 得到所有聯系人List<Element> contactElements = rootElement.elements();//每個就是一個聯系人for (Element contactElement : contactElements) {//創建一個聯系人Contact contact = new Contact();//System.out.println(contactElement.getName()); //打印標簽名//得到id屬性值,將字符串轉成int類型int id = Integer.parseInt(contactElement.attributeValue("id"));contact.setId(id);//得到子元素中文本contact.setName(contactElement.elementText("name"));contact.setGender(contactElement.elementText("gender"));contact.setEmail(contactElement.elementText("email"));//將當前對象添加到集合中list.add(contact);}//打印集合中所有的聯系人for (Contact contact : list) {System.out.println(contact);}}

    總結

    以上是生活随笔為你收集整理的xml中的Document和Attribute的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩美女一区 | 色综合区| 天天高潮夜夜爽 | 亚洲欧美激情精品一区二区 | 奇米777第四色| 免费在线看污 | xxxx国产精品| 久久国产秒 | 国产精品300页 | 天堂成人在线视频 | 成年人免费在线视频 | 奇米影视盒 | 成人国产欧美 | 秘密爱大尺度做爰呻吟 | 特淫毛片| 国语av在线 | 亚洲在线一区 | 欧美日韩国产一区二区三区在线观看 | 精品国产乱码久久久久久88av | 国产成人一级 | 伊人欧美在线 | 精品久久网| 日日夜夜精品视频免费 | 人人草人人射 | 黄色av免费在线观看 | 久久香蕉精品视频 | 另类综合小说 | 亚洲综合日韩在线 | a天堂av| 99在线精品视频 | 亚洲欧洲精品一区 | 亚洲综合激情在线 | 色综合啪啪 | 国产成人精品电影 | 亚洲自拍偷拍一区 | 欧洲自拍偷拍 | 国产三级aaa | 专业操老外 | 少妇第一次交换又紧又爽 | 香蕉久久国产av一区二区 | 97精品国产 | 女人的天堂av | 琪琪午夜伦理影院7777 | 秋霞电影一区二区 | 精品人妻一区二区三区日产乱码 | 精品一区二区在线观看视频 | 美女福利一区 | 亚洲一品道 | 姐姐你真棒插曲快来救救我电影 | 国产精品激情偷乱一区二区∴ | 制服丝袜一区二区三区 | 五月香婷婷| av无毛 | 亚洲精品在线一区二区 | 国产精品无码AV | 久久久久久久久久久国产 | 国产欧美在线 | 日日射夜夜 | 91国内产香蕉 | 91精品久久久久久粉嫩 | 亚色中文字幕 | 国产每日更新 | av私库在线观看 | 91久久精品一区二区三区 | 欧美日韩国产一区二区三区 | 在线a免费| 香蕉成人网 | 久久久国产精品一区二区三区 | 亚洲福利视频导航 | 爽爽窝窝午夜精品一区二区 | 蜜臀av色欲a片无码精品一区 | 男生和女生差差的视频 | av永久免费观看 | 自拍偷拍国产视频 | 乌克兰做爰xxxⅹ性视频 | 中文在线а√天堂 | 精品国产人妻一区二区三区 | 欧美美女黄色 | 日本女优在线看 | 亚洲性事 | 丝袜美腿中文字幕 | 日本黄xxxxxxxxx100 | 国产+高潮+白浆+无码 | 黄色三级a | 国产高清一区二区 | 国产亚洲欧美日韩精品一区二区三区 | 黄色一级免费片 | 欧美va亚洲va | 三级黄色片免费 | 亚洲精品aaa | 亚洲国产aⅴ精品一区二区的游戏 | 久久国产精品99久久人人澡 | 亚洲综合网址 | 日日射夜夜操 | 日本在线视频中文字幕 | 一区二区三区在线不卡 | 亚洲视频免费在线 | 天天综合久久综合 | 一区二区自拍 |