使用XML描述下表中的商品信息。XML文件为products.xml

1.1:写一个product.dtd文件,约束和验证product.xml只能包含的内容。并在product.xml引入外部的dtd文件.

1.2: 写一个测试类Test,解析products.xml,将一个商品标签进行解析封装成一个商品对象,并存储到商品的集合中。最后遍历集合输出所有的商品信息

ID

名称

单价

颜色

尺寸

库存

P001

蜘蛛王皮鞋

268

黑色

42

500

P002

ThinkPad x240

5678

黑色

12

50

P003

WD移动硬盘

568

蓝色

5

10

package StudyWork1;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Test {
	// 1.3: 写一个测试类Test,解析products.xml,
	// 将一个商品标签进行解析封装成一个商品对象,
	// 并存储到商品的集合中。
	// 最后遍历集合输出所有的商品信息。
	public static void main(String[] args) throws DocumentException {
		// 创建XML解析器对象
		SAXReader sr = new SAXReader();
		// 读取xml文件
		Document doc = sr.read("../XML/src/StudyWork1/products.xml");
		// 获取根元素标签
		Element root = doc.getRootElement();
		System.out.println("根标签名称" + root.getName());
		// 获取所有子元素标签
		List<Element> stuList = root.elements("product");
		System.out.println("ID\t名称\t\t单价\t颜色\t尺寸\t库存");
		for (Element element : stuList) {
			// 获取id的值
			System.out.println(element.attributeValue("ID")+"\t"+element.element("name").getText()+"\t"+element.elementText("price")+"\t"+element.elementText("color")+"\t"+element.elementText("type")+"\t"+element.elementText("num"));
		}
		

	}
}
//以下是dtd文件的约束设置
<?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT products (product*) >
    <!ELEMENT product (name,price,color,type,num) >
    <!ATTLIST product ID CDATA #REQUIRED >
    <!ELEMENT name (#PCDATA) >
    <!ELEMENT price (#PCDATA) >
    <!ELEMENT color (#PCDATA) >
    <!ELEMENT type (#PCDATA) >
    <!ELEMENT num (#PCDATA) >
<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE products SYSTEM  "product.dtd" >
<products>
  <product ID="P001">
     <name>蜘蛛网皮鞋</name>
     <price>38</price>
     <color>红色</color>
     <type>42</type>
     <num>55</num>
  </product>   
 <product ID="P002">
     <name>外星人笔记本</name>
     <price>38</price>
     <color>黑色</color>
     <type>44</type>
     <num>57</num>
  </product>
  <product ID="P003">
     <name>WD移动硬盘</name>
     <price>3</price>
     <color>绿色</color>
     <type>12</type>
     <num>455</num>
  </product>        
</products>








使用的时候记得导入 

运行结果

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

$初学者¥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值