• 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里编写必须

    <白南>

    不可以<白南>

  • 相关阅读:
    如何辨别优秀的人 选拔出最能打的选手
    JavaSE高级编程之多线程
    刷爆力扣之最短无序连续子数组
    springboot自动配置流程,以及实现自定义springboot starter
    线性表的插入、删除和查询操作
    【C++】vector,list迭代器失效
    【DNS系列】什么是正向DNS和反向DNS
    白杨SEO:如何拆解一个权6网站SEO优化方式和变现?我们做SEO可以学习哪些?
    openssl lib includefor windows
    第七章第三节:散列表(Hash Table)
  • 原文地址:https://blog.csdn.net/weixin_61451728/article/details/126161175