标签:
主要内容:
<中国><北京><丰台></丰台><海淀></海淀></北京><安徽><合肥></合肥><黄山></黄山></安徽></中国>
<mytag>context</mytag>
<mytag/>
<P> <p>
&
<
>
"
'
<!-- 这是注释信息 -->
<?xml version="1.0" encoding="GBK" standalone="yes"?>
<!DOCTYPE 书架 [
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
]
>
<书架>
<书>
<书名>JavaWEB开发</书名>
<作者>小三</作者>
<售价>45.90</售价>
</书>
</书架>
<!DOCTYPE 根元素 SYSTEM "DTD文档路径">
如:<!DOCTYPE 书架 SYSTEM "book.dtd">
<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档的URL">
如:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun/com/dtd/web-app_2_3.dtd">
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书>
<书名>JavaWEB开发</书名>
<作者>小三</作者>
<售价>45.90</售价>
</书>
<书>
<书名>C/C++开发</书名>
<作者>小四</作者>
<售价>43.00</售价>
</书>
</书架>
<!ATTLIST 元素名
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明
......
>
示例:
<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
>
则对应的XML为:<商品 类别=”服装” 颜色=”黄色”/>
示例一:
<!ATTLIST 页面作者
姓名 CDATA #IMPLIED
年龄 CDATA #IMPLIED
联系信息 CDATA #REQUIRED
网站职务 CDATA #FIXED "页面作者"
个人爱好 CDATA "上网"
>
示例二:
<?xml version="1.0" encoding="GBK" standalone="yes"?>
<!DOCTYPE 购物篮 [
<!ELEMENT 肉 EMPTY>
<!ATTLIST 肉 品种 (鸡肉|牛肉|猪肉|鱼肉) "鸡肉">
]>
<购物篮>
<肉 品种="鱼肉"/>
<肉 品种="牛肉"/>
<肉/>
</购物篮>
DTD中定义:
<!ENTITY copyright "易则版权所有">
XML中引用:
©right;
DTD中定义:
<!ENTITY % TAG_NAMES "姓名|EMAIL|电话|地址">
DTD中引用:
<!ELEMENT 个人信息 (%TAG_NAMES;|生日)>
<!ELEMENT 客户信息 (%TAG_NAMES;|公司名)>
注:
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult("src/book.xml"));
public static void main(String[] args) throws Exception {
// 获取解析器
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
// 得到读取器
XMLReader xmlReader = saxParser.getXMLReader();
xmlReader.setContentHandler(new DefaultHandler() {
int index = 0; //售价索引
boolean isPrice = false; //是否是售价
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if ("售价".equals(qName)) {
isPrice = true;
}
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
if (index == 1 && isPrice) {
System.out.println(new String(ch, start, length));
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if ("售价".equals(qName)) {
isPrice = false;
index++;
}
}
});
xmlReader.parse("sax/src/book.xml");
}
public void getNodeTextContent() throws Exception {
//1 得到解析器
SAXReader saxReader = new SAXReader();
//2 加载xml文档
Document document = saxReader.read("src/book.xml");
//3 获取根元素
Element root = document.getRootElement();
//4 得到第二本书元素
Element book = (Element) root.elements("书").get(1);
Element bookName = book.element("书名");
Assert.assertEquals("C/C++开发", bookName.getText());
}
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.hsx.com"
elementFormDefault="qualified">
<xs:element name=‘书架‘>
<xs:complexType>
<xs:sequence maxOccurs=‘unbounded‘>
<xs:element name=‘书‘>
<xs:complexType>
<xs:sequence>
<xs:element name=‘书名‘ type=‘xs:string‘ />
<xs:element name=‘作者‘ type=‘xs:string‘ />
<xs:element name=‘售价‘ type=‘xs:string‘ />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<hsx:书架 xmlns:hsx="http:www.hsx.com"
xmlns:xi="http://www.w3.org/2001/XMLSchema-instance"
xi:schemaLocation="http://www.hsx.com book.xsd">
<hsx:书>
<hsx:书名>Java AOP</hsx:书名>
<hsx:作者>黄泽</hsx:作者>
<hsx:售价>50</hsx:售价>
</hsx:书>
</hsx:书架>
<hsx:书架 xmlns:hsx="http:www.hsx.com"
xmlns:xi="http://www.w3.org/2001/XMLSchema-instance"
xi:schemaLocation="http://www.hsx.com book.xsd">
<hsx:书>
<hsx:书名>Java AOP</hsx:书名>
<hsx:作者>黄泽</hsx:作者>
<hsx:售价>50</hsx:售价>
</hsx:书>
</hsx:书架>
http://
开始,哪个URI并不指向一个包含模式定义的文件。事实上,这个URL:http://www.hsx.com
根本没有指向任何文件,只是一个分配的名字。xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
xmlns="URI"
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http:www.hsx.com"
xmlns:xi="http://www.w3.org/2001/XMLSchema-instance"
xi:schemaLocation="http://www.hsx.com book.xsd">
<书>
<书名>Java AOP</书名>
<作者>黄泽</作者>
<售价>50</售价>
</书>
</书架>
<?xml version="1.0" encoding="gbk"?>
<shiporder xmlns="http://www.itcast.cn"
xmlns:xi="http://www.w3.org/2001/XMLSchema-instance"
xi:schemaLocation="http://www.itcast.cn shiporder.xsd" orderid="aaaa">
<orderperson>aaa</orderperson>
<shipto>
<name>zhangsan</name>
<address>sd</address>
<city>jn</city>
<country>cn</country>
</shipto>
<item>
<title>aaaaa</title>
<note>bbbb</note>
<quantity>10</quantity>
<price>100.0</price>
</item>
</shiporder>
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="book.xsd">
<书>
<书名>Java编程思想</书名>
<作者>黄泽</作者>
<售价>59.00</售价>
</书>
</书架>
标签:
原文地址:http://blog.csdn.net/hsx1612727380/article/details/51155202