bookstore1.xmljava
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bookstore [ <!ELEMENT bookstore (book+)> <!ELEMENT book (title,author,year,price)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ATTLIST book category CDATA #REQUIRED> <!ATTLIST title lang CDATA #REQUIRED> ]> <bookstore> <book category="COOKING"> <title>Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2004</year> <price>29.99</price> </book> <book category="WEB"> <title>学习 XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
booksto.xml
dom
<?xml version="1.0" encoding="UTF-8"?> <bookstore xmlns="http://www.example.org/demo" xsi:schemaLocation="http://www.example.org/demo demo.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <book category="COOKING"> <title>Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005-10-10</year> <price>30.00</price> </book> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2004-10-10</year> <price>29.99</price> </book> <book category="WEB"> <title>学习 XML</title> <author>Erik T. Ray</author> <year>2003-10-10</year> <price>39.95</price> </book> </bookstore>
demo.xsd
jsp
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/demo" elementFormDefault="qualified"> <element name="bookstore"> <complexType> <sequence maxOccurs="3" minOccurs="1"> <element name="book"> <complexType> <sequence> <element name="title"> <complexType> <simpleContent> <extension base="string"> <attribute name="lang" type="string"></attribute> </extension> </simpleContent> </complexType> </element> <element name="author" type="string"></element> <element name="year" type="date"></element> <element name="price" type="double"></element> </sequence> <attribute name="category" type="string" use="required"></attribute> </complexType> </element> </sequence> </complexType> </element> </schema>
package demo; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Test { public static void main(String[] args) throws Exception { //建立解析xml的对象 SAXReader reader = new SAXReader(); //读取相应的xml文件 Document document = reader.read("WebRoot/DTD/bookstore.xml"); //获得相应的根元素 Element root = document.getRootElement(); for( Iterator i = root.elementIterator(); i.hasNext();){ Element element = (Element) i.next(); System.out.println(element); } } }
package dom4jj; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Test { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("WebRoot/schemademo/book.xml"); Element root = document.getRootElement(); System.out.println("-----(获得相应的根元素)-----"); for(Iterator i = root.elementIterator();i.hasNext();){ Element element = (Element)i.next(); System.out.println(element); } System.out.println("----(获得相应的子元素)----"); List<Element> els = root.elements(); //获得第二个元素 Element elem = els.get(1); System.out.println(elem.getName());//获得相应标签的名字 Attribute attribute = elem.attribute("category");//获得指定属性的属性对象 System.out.println(attribute.getValue());//获得相对应的属性的值 String attributeValue = elem.attributeValue("category");//直接获得指定属性的属性值 System.out.println(attributeValue); Element element = elem.element("title"); //获得指定的标签对象 String text = element.getText();//获得相应的标签的文本值 System.out.println(text); String elementText = elem.elementText("title"); System.out.println(elementText); } }
package cn.itcast.dom4j; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class DomXpath { public static void main(String[] args) throws Exception { //建立解析的对象 SAXReader reader = new SAXReader(); //读取xml文件 Document document = reader.read("WebRoot/dom4j/bookstore.xml"); //BBB List<Element> elements = document.selectNodes("//year"); for(Element ele:elements){ System.out.println(ele.getText()); } } }
package cn.itcast.dom4j; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.SAXReader; public class DomXpath2 { public static void main(String[] args) throws Exception { //获取解析xml的对象 SAXReader read = new SAXReader(); //读取相应的xml文件 Document document = read.read("WebRoot/dom4j/bookstore.xml"); //查找单个标签元素 //BBB[@name='bbb'] Element ele = (Element) document.selectSingleNode("//book[@category='WEB']/price"); System.out.println(ele.getText()); } }
WEB-INF 必须有的目录,里面存放的是项目编译后的.class文件,因此不能够将.jsp文件放到该目录下学习
协议:规范。(咱们网上传输的资源遵循http协议规范)ui