conf.xsd: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="学生名册"> <!-- 根元素为学生名册,它包含了若干个学生,所以学生名册一定是一个complexType,一定是个复杂类型 --> <xs:complexType> <!--学生名册里面有多个学生,所以可以用sequence--> <!--每个sequence里面就一个元素:学生,而且它可以不断重复,0次或者多次--> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="学生"> <!-- 因为学生也是一个复杂的类型 --> <xs:complexType> <xs:sequence> <xs:element name="姓名" type="xs:string"/> <!-- 性别使用简单类型 --> <xs:element name="性别"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="男"/> <xs:enumeration value="女"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- 年龄也是一个简单类型 --> <xs:element name="年龄" > <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="1"/> <xs:maxInclusive value="150"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> test.xml: <?xml version="1.0" encoding="UTF-8"?> <学生名称 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="conf.xsd"> <学生 学号="1"> <姓名>张三</姓名> <性别>男</性别> <年龄>23</年龄> </学生> <学生 学号="2"> <姓名>李四</姓名> <性别>女</性别> <年龄>24</年龄> </学生> <学生 学号="3"> <姓名>王五</姓名> <性别>男</性别> <年龄>25</年龄> </学生> </学生名称> 文件的解析: package kw.java; import java.io.File; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.tree.AbstractAttribute; public class readxmlDemo { static String Xmlname = "conf/test.xml"; public static void main(String[] args) throws DocumentException { SAXReader reader = new SAXReader(); File file = new File(Xmlname); //读取文档实体 Document doc = reader.read(file); /*//获得指定路径下的所有节点 List list = doc.selectNodes("//学生"); for(Iterator it = list.iterator();it.hasNext();){ //获得具体的row元素 Element element = (Element)it.next(); //获得所有的属性 List eList = element.attributes(); for(Iterator iter1 = eList.iterator();iter1.hasNext();){ //将每个属性转化为一个抽象属性,然后获取其名字和值 AbstractAttribute aa = (AbstractAttribute)iter1.next(); System.out.println("Name:"+aa.getName()+";Value:"+aa.getValue()); } }*/ //获得跟元素 Element root = doc.getRootElement(); //得到所有的子元素 List<Element> list = root.elements(); } }
原文地址:https://www.jb51.cc/xml/294193.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。