[Java] XML 相关题目


XML 相关题目

1. 定义 xml 文件

  • 请定义 xml 文件,存储以下 “图书” 信息:
    书名:《疯狂的程序员》,出版社:人民邮电出版社,出版日期:2010-6-6,价格:125.00
    书名:《JavaEE企业级开发》,出版社:黑马研究院,出版日期:2011-5-5,价格:115.80
    书名:《Oracle指南》,出版社:清华计算机,出版日期:2012-7-7,价格:89.00
  • 要求:
    (1)使用:文档声明;
    (2)“标签名” 不可使用中文;
    (3)文件名为:books.xml;
    (4)根元素为:<books>
  • bookshelf.dtd
<!ELEMENT books (book+)>
        <!ELEMENT book (bookName,press,publicationDate,price)>
        <!ELEMENT bookName (#PCDATA)>
        <!ELEMENT press (#PCDATA)>
        <!ELEMENT publicationDate (#PCDATA)>
        <!ELEMENT price (#PCDATA)>
  • books.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE books SYSTEM "bookshelf.dtd">
<books>
    <book>
        <bookName>《疯狂的程序员》</bookName>
        <press>人民邮电出版社</press>
        <publicationDate>2010-6-6</publicationDate>
        <price>125.00</price>
    </book>
    <book>
        <bookName>《JavaEE企业级开发》</bookName>
        <press>黑马研究院</press>
        <publicationDate>2011-5-5</publicationDate>
        <price>115.80</price>
    </book>
    <book>
        <bookName>《Oracle指南》</bookName>
        <press>清华计算机</press>
        <publicationDate>2012-7-7</publicationDate>
        <price>89.00</price>
    </book>
</books>

2. 用 dom4j 解析

  • 请将 dom4j 包导入到项目中;
  • 使用 dom4j 读取 1.1 的 books.xml 文件,解析每条数据,并打印。
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Test {
    public static void main(String[] args) throws Exception {
        //(1)创建xml解析器对象
        SAXReader saxReader = new SAXReader();
        //(2)定位xml的位置
        //(3)获取Document对象
        Document doc = saxReader.read("Practice1/books.xml");
        //(4)获取根元素
        Element root = doc.getRootElement();
        //(5)获取根元素下的所有book的元素
        List<Element> elements = root.elements();
        //(6)遍历所有的book元素
        if (elements != null && elements.size() != 0) {//判断获取的子元素集合是否为空
            for (Element book : elements) {
                //(7)获取元素中各种内容
                String bookName = book.elementText("bookName");//获取该元素的子元素所对应的元素的文本内容
                String press = book.elementText("press");
                String publicationDate = book.elementText("publicationDate");
                String price = book.elementText("price");
                //(8)输出内容
                System.out.println("书名:" + bookName + ",出版社:" + press +
                        ",出版日期:" + publicationDate + ",售价:" + price);
            }
        }
    }
}
/*
输出
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.dom4j.io.SAXContentHandler (file:/C:/Users/80626/idea-workspace/Practice1/lib/dom4j-1.6.jar) to method com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$LocatorProxy.getEncoding()
WARNING: Please consider reporting this to the maintainers of org.dom4j.io.SAXContentHandler
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
书名:《疯狂的程序员》,出版社:人民邮电出版社,出版日期:2010-6-6,售价:125.00
书名:《JavaEE企业级开发》,出版社:黑马研究院,出版日期:2011-5-5,售价:115.80
书名:《Oracle指南》,出版社:清华计算机,出版日期:2012-7-7,售价:89.00
 */
发布了310 篇原创文章 · 获赞 315 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Regino/article/details/105210870