• xml总结


    dom4j 解析技术
    程序步骤:
    第一步: 先加载 xml 文件创建 Document 对象
    第二步:通过 Document 对象拿到根元素对象
    第三步:通过根元素 .elelemts( 标签名 ); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
    第四步:找到你想要修改、删除的子元素,进行相应在的操作
    第五步,保存到硬盘上
    ============================

    1.获取document对象:

    创建一个 lib 目录,并添加 dom4j jar 包。并添加到类路径

     

    需要解析的 books.xml 文件内容

     

    解析获取 Document 对象的代码

    第一步,先创建 SaxReader 对象。这个对象,用于读取 xml 文件,并创建 Document

    1. public void test1() throws Exception {
    2. //创建一个SaxReader输入流,去读取xml配置文件,生成Document对象
    3. SAXReader saxReader=new SAXReader();
    4. Document document =saxReader.read("src/books.xml");
    5. System.out.println(document);
    6. }

    2.遍历 标签 获取所有标签中的内容

    1. package com.atguigu.pojo;
    2. import org.dom4j.Document;
    3. import org.dom4j.DocumentException;
    4. import org.dom4j.Element;
    5. import org.dom4j.io.SAXReader;
    6. import org.junit.Test;
    7. import java.math.BigDecimal;
    8. import java.util.List;
    9. public class Dom4jTest {
    10. @Test
    11. public void test1() throws Exception {
    12. //创建一个SaxReader输入流,去读取xml配置文件,生成Document对象
    13. SAXReader saxReader=new SAXReader();
    14. Document document =saxReader.read("src/books.xml");
    15. System.out.println(document);
    16. }
    17. @Test
    18. public void test2() throws Exception {
    19. //1.读取books.xml文件
    20. SAXReader reader=new SAXReader();
    21. //在Junit测试中,相对路径是从模块名开始算
    22. Document document= reader.read("src/books.xml");
    23. //2.通过Document对象获取元素
    24. Element rootElement =document.getRootElement();
    25. //3.通过根元素获取book标签对象
    26. //element和elements都是通过标签名查找子元素,有s查的是集合,一堆,没s查的是单个
    27. List books =rootElement.elements("book");
    28. for (Element book :books) {
    29. //asXML()把标签对象转换为标签字符串
    30. //elementText直接获取指定标签的文本内容
    31. String nameText= book.elementText("name");
    32. String priceText= book.elementText("price");
    33. String authorText= book.elementText("author");
    34. String snValue=book.attributeValue("sn");
    35. System.out.println(new Book(snValue,nameText, new BigDecimal(priceText),authorText));
    36. }
    37. }
    38. }

    全部代码如上

    效果如下:

    =============================================================== 

    补充:

    文本区域(
    CDATA 区)
    CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析
    CDATA 格式:
    这里可以把你输入的字符原样显示,不会解析 xml ]]>
    1. <books>
    2. <book id="SN001" >
    3. <name>java编程name>
    4. <author>白南author>
    5. <price>9.9price>
    6. book>
    7. <book id="SN002" >
    8. <name>c++编程name>
    9. <author>
    10. <<<<<<<<<红北
    11. ]]>
    12. author>
    13. <price>19.9price>
    14. book>
    15. <book id="sn003" name="python编程" author="蓝东" price="8.8">book>
    16. books>

    还有一些特殊字符:

     如果想要这样的效果<白南>

    则在xml里编写必须

    <白南>

    不可以<白南>

  • 相关阅读:
    基于Matlab的磁力计校准(附源码)
    DSP_TMS320F28335_队列与栈
    Spring MVC 和 @ModelAttribute 注释
    Ubuntu安装配置PostgreSQL(18.04)
    【数据结构】双向循环链表
    操作系统安装在哪里?
    数据分类分级指南分级方法
    用js理解常用设计模式
    在 MacOS 应用程序(和 iOS 应用程序)中嵌入 Python 解释器,并成功发布到 App Store。
    分布式多级缓存
  • 原文地址:https://blog.csdn.net/weixin_61451728/article/details/126161175