zoukankan      html  css  js  c++  java
  • dom4j读取xml和dtd的使用方式

     package xmlTest;
     
    import java.util.List;
     
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.junit.Test;
     
    public class XmlTest {
    @Test
    public void test() throws DocumentException{
    //1.创建SAXReader对象reader
    SAXReader reader = new SAXReader();
    //2.reader对象关联指定xml文件,创建Document
    Document document = reader.read("src\person.xml");
    //3.获取根节点
    Element root = document.getRootElement();
    //4.通过根节点获取子节点
    @SuppressWarnings("unchecked")
    List<Element> elements = root.elements("person");
    //5.遍历子节点,并输出
    for(Element person:elements){
    //获取子节点中的属性
    String id = person.attributeValue("id");
    //获取子节点中的内容
    Element nameElement = person.element("name");
    Element ageElement = person.element("age");
    Element scoreElement = person.element("score");
    System.out.println(id+" "+nameElement.getText()+" "+ageElement.getText()+" "+scoreElement.getText());
    }
    }
    }
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!-- 这是xml中的注释 xml用法 :由于实际工作中 可能会出现互相传递一组数据的情况直接传递数据文件 传统的数据文件可读性较差 并且需要io流解析所以创建了xml版本的数据文件现在认为不仅xml可以用于互相传递数据 也可以用作配置文件所以xml 现在基本上作为配置文件和数据文件两种格式存在 -->
     
    -<persons>
     
     
    -<person id="1001">
     
    <name>azrail</name>
     
    <age>23</age>
     
    <score>15</score>
     
    </person>
     
     
    -<person id="1002">
     
    <name><涛哥></name>
     
    <age>19</age>
     
    <score>100</score>
     
    </person>
     
     
    -<person id="1003">
     
    <name>晟哥</name>
     
    <age>21</age>
     
    <score>100</score>
     
    </person>
     
     
    -<person id="1004">
     
    <name>浩哥</name>
     
    <age>18</age>
     
    <score>100</score>
     
    <car id="1" name="bmw"/>
     
     
    -<money>
     
    -<![CDATA[
    <> 这里是纯文本 想些什么就写什么 不会被转译 &lt;
    ]]>
    </money>
     
    </person>
     
    </persons>

    //TVSCHEDULE.dtd  dtd文件
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE TVSCHEDULE [
     
    <!ELEMENT TVSCHEDULE (CHANNEL+)>
    <!ELEMENT CHANNEL (BANNER,DAY+)>
    <!ELEMENT BANNER (#PCDATA)>
    <!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
    <!ELEMENT HOLIDAY (#PCDATA)>
    <!ELEMENT DATE (#PCDATA)>
    <!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
    <!ELEMENT TIME (#PCDATA)>
    <!ELEMENT TITLE (#PCDATA)> 
    <!ELEMENT DESCRIPTION (#PCDATA)>
     
    <!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
    <!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
    <!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
    <!ATTLIST TITLE RATING CDATA #IMPLIED>
    <!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>
     
    ]>
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!DOCTYPE TVSCHEDULE>
     
    -<TVSCHEDULES>
     
     
    -<TVSCHEDULE NAME="1">
     
     
    -<CHANNEL CHAN="1">
     
    <BANNER/>
     
     
    -<DAY>
     
    <DATE/>
     
    <HOLIDAY/>
     
    </DAY>
     
    </CHANNEL>
     
    </TVSCHEDULE>
     
     
    -<TVSCHEDULE NAME="1">
     
     
    -<CHANNEL CHAN="1">
     
    <BANNER/>
     
     
    -<DAY>
     
    <DATE/>
     
     
    -<PROGRAMSLOT VTR="">
     
    <TIME/>
     
    <TITLE LANGUAGE="" RATING=""/>
     
    <DESCRIPTION/>
     
    </PROGRAMSLOT>
     
    </DAY>
     
    </CHANNEL>
     
    </TVSCHEDULE>
     
    </TVSCHEDULES>
  • 相关阅读:
    css自适应浏览器大小
    javascript es6 箭头函数
    vue-router路由的使用
    vue-client脚手架使用
    springboot整合thymeleaf模板引擎
    SpringBoot不使用模板引擎直接返回html
    css加载动画
    java将数据从List转换Map
    KMP算法理解
    解决Linux服务器tomact-8.0启动慢的问题
  • 原文地址:https://www.cnblogs.com/m-ming/p/11598476.html
Copyright © 2011-2022 走看看