ImageVerifierCode 换一换
你正在下载:

XML.docx

[预览]
格式:DOCX , 页数:28 ,大小:478.04KB ,
资源ID:6460625      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6460625.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(XML.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

XML.docx

1、XML XML笔记 可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。它的设计宗旨是传输数据,而不是显示数据。它的标签没有被预定义需要自行定义标签。 Xml和html的区别:HTML中的标记是用来显示数据的,而XML中的标记用来描述数据的性质和结构。HTML是不区分大小写的,而XML是严格区分大小写的。HTML可以有多个根元素,而XML有且只能有一个根元素。HTML中,属性值的引号是可用可不用的,而XML中,属性值必须放在引号中。HTML中,空格是可用自动过滤的,而XML中,空格等部分则不会自动删除。

2、HTML中的标记是预定义的,而XML中的标记是可以随便定义的,并且可扩展。.语法特点 1.标签用户自己定义 2.一个标签分为起始和结束标签,不能省略结束标签 3.标签中可以嵌套若干子标签,不允许交叉嵌套 4.必须有且仅有一个根标签 5.XML中不会忽略主体内容中出现的空格和换行t 6.包含字母、数字、减号、下划线和英文句点 7.严格区分大小写 8.通过,它的作用是将文本或标签转为文本结点注释:xml注释为但是不能注释里面在加小注释。为什么乱码?encoding属性说明文档所使用的字符编码,默认为UTF-8。保存在磁盘上的文件编码要与声明的编码一致。 王召 男 22 钓鱼 !CDATA这是一个秘

3、密 常用的约束技术:XML DTD、 XMLSchema、 XDR、 SOX。DTD 文档类型定义(Document Type Definition)是一套关于标记符的语法规则。它是标准通用标记语言和1可扩展标记语言1.0版规格的一部分,是文档的验证机制。文档类型定义是一种保证标准通用标记语言、可扩展标记语言文档格式正确的有效方法,可通过比较文档和文档类型定义文件来看文档是否符合规范,元素和标签使用是否正确。约束xml书写的规范。假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:一个元素可以有多个属性,每个属性都有它自己的名称和取值,例如:属

4、性值一定要用引号(单引号或双引号)引起来。属性名称的命名规范与元素的命名规范相同元素中的属性是不允许重复的语法:使用规则:(#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data)EMPTY:用于指示元素的主体为空。比如ANY:用于指示元素的主体内容为任意类型。(子元素):指示元素中包含的子元素定义子元素及描述它们的关系:如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档。如: !ELEMENT FILE (TITLE,AUTHOR,EMAIL)如果子元素用“|”分开,说明任选其一。如:!ELEMENT FILE (TITLE|AUTHOR|

5、EMAIL)用+、*、?来表示元素出现的次数如果元素后面没有+*?:表示必须且只能出现一次+:表示至少出现一次,一次或多次*:表示可有可无,零次或多次?:表示零次或一次。如: IE5以上浏览器内置了XML解析工具:Microsoft.XMLDOM,开发人员可以编写javascript代码,利用这个解析工具装载xml文件,并对xml文件进行dtd验证。创建xml文档解析器对象var xmldoc = new ActiveXObject(Microsoft.XMLDOM);开启xml校验xmldoc.validateOnParse = true;装载xml文档xmldoc.load(book.xm

6、l);获取错误信息xmldoc.parseError.reason; xmldoc.parseError.line;内部应用DTD案例:html文件(进行验证xml是否和dtd匹配)从结果看360浏览器不支持。 再加一个html解析dtd / 创建xml文档解析器对象 var xmldoc = new ActiveXObject(Microsoft.XMLDOM);/开启xml校验 xmldoc.validateOnParse = true;/装载xml文档 xmldoc.load(_2books.xml);/获取错误信息var a=xmldoc.parseError.reason; var

7、b=xmldoc.parseError.line; document.write(error reason is-+a+errro line is- +b); 如果内部引用:Xml文件 水浒传 施耐庵 三国演义 &wuchengen; 西游记 红楼梦 曹雪芹 Dtd文件 运行xml如果改动wuchengen为wucheng(即上面dtd定义实体的代码)则报错如下 :如何根据DTD中定义的内容来验证XML书写是否正确呢?答:需要软件程序,即解析器根据能否对XML文档进行约束模式校验,可以将解析器分为两类:非校验解析器,如IE校验解析器XML解析方式分为两种:DOM方式和SAX方式DOM:Docu

8、ment Object Model,文档对象模型。这种方式是W3C推荐的处理XML的一种方式。SAX:Simple API for XML。这种方式不是官方标准,属于开源社区XML-DEV,几乎所有的XML解析器都支持它。XML解析开发包JAXP:是SUN公司推出的解析标准实现。Dom4J:是开源组织推出的解析开发包。(牛,大家都在用,包括SUN公司的一些技术的实现都在用)JDom:是开源组织推出的解析开发包。JAXP:(Java API for XML Processing)开发包是JavaSE的一部分,它由以下几个包及其子包组成:org.w3c.dom:提供DOM方式解析XML的标准接口o

9、rg.xml.sax:提供SAX方式解析XML的标准接口javax.xml:提供了解析XML文档的类javax.xml.parsers包中,定义了几个工厂类。我们可以通过调用这些工厂类,得到对XML文档进行解析的DOM和SAX解析器对象。DocumentBuilderFactorySAXParserFactory调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂。调用工厂对象的 newDocumentBuilder方法得到 DOM 解析器对象。调用 DOM 解析器对象的 parse() 方法解析 XML 文档,得到代表整个文档的

10、Document 对象,进行可以利用DOM特性对整个XML文档进行操作了。关于自己写成一个java工具util可以调用(见视频)。DOM解析:要生成节点树木必须加载整个文档,容易造成内存溢出。SAX解析:读取单个节点,再去触发事件,占用内存小,适合读取xml,但是不适合做修改。 水浒传 施耐庵 三国演义 忘了 西游记 红楼梦 曹雪芹 案例:(dom解析)package wangdom.test;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax

11、.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class Domtest public static void main(String args) throws Exception DocumentBuilderFactory dbfactory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=dbfactor

12、y.newDocumentBuilder(); Document document= builder.parse(src/books.xml); /找节点 NodeList list= document.getElementsByTagName(作者); Node authorNode= list.item(0); /找文本输出 System.out.println(authorNode.getTextContent(); 案例:(sax解析)package saxmethod;import javax.xml.parsers.SAXParser;import javax.xml.parser

13、s.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class Saxtest public static void main(String args) throws Exception /得到SAXParserFactory实例: SAXParserFactory factory=SAXParserFactory.newInstance(); /共厂创建解析器SAXParser SAXP

14、arser parser=factory.newSAXParser(); /下面new的是内部匿名类parser.parse(src/books.xml,new DefaultHandler() public void startDocument() throws SAXException System.out.println(文档开始了哈); public void endDocument() throws SAXException System.out.println(文档结束了哈); public void startElement(String uri, String localNam

15、e, String qName, Attributes attributes) throws SAXException System.out.println(元素开始了哈); public void endElement(String uri, String localName, String qName) throws SAXException System.out.println(元素结束了哈); public void characters(char ch, int start, int length) throws SAXException System.out.println(new

16、 String(ch,start,length); ); 案例:Book.java/此文档中的文档开始和文档结束没用到可以删掉。package wangdom.test;/添加有参无参方法public class Book private String bookname; private String author; private double price; public String toString() return Book bookname= + bookname + , author= + author + , price= + price + ; public Book(Stri

17、ng bookname, String author, double price) super(); this.bookname = bookname; this.author = author; this.price = price; public Book() super(); public String getBookname() return bookname; public void setBookname(String bookname) this.bookname = bookname; public String getAuthor() return author; publi

18、c void setAuthor(String author) this.author = author; public double getPrice() return price; public void setPrice(double price) this.price = price; Saxtest2.javapackage wangdom.test;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParser

19、Factory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.XMLReader;import org.xml.sax.helpers.DefaultHandler;public class Saxtest2 public static void main(String args) throws Exception SAXParser parser=SAXParserFactory.newInstance().newSAXParser(); /得到xmlreader对象 XMLR

20、eader reader=parser.getXMLReader(); final Listbooks=new ArrayList(); /设置内容处理器 reader.setContentHandler(new DefaultHandler() Book book=null; String node=null; public void startDocument() throws SAXException public void endDocument() throws SAXException public void startElement(String uri, String loca

21、lName, String qName, Attributes attributes) throws SAXException if(书.equals(qName) book=new Book(); node=qName; public void endElement(String uri, String localName, String qName) throws SAXException if(书.equals(qName) books.add(book); book=null; node=null; public void characters(char ch, int start,

22、int length) throws SAXException if(书名.equals(node) book.setBookname(new String(ch,start,length); if(作者.equals(node) book.setAuthor(new String(ch,start,length); if(售价.equals(node) book.setPrice(Double.parseDouble(new String(ch,start,length); ); / 加载 reader.parse(src/books.xml); /遍历 for(Book b:books)

23、System.out.println(b); /下面出现70是因为上述xml文件改动了,加了一个70element。案例:package unittest;import org.junit.Assert;import org.junit.Test;public class Jtest class Mymath public int add(int x, int y) return x+y; public int mult(int a,int b) return a*b; Mymath mymath=new Mymath(); Test(timeout=1)/【判断是否超时单位是毫秒 /一定是无

24、参无返回 测试时点上方法也就是test1,然后raun as 1junittest(实验证明不选上也可以的) public void test1() int result=mymath.add(10,20); /可以加上一句断言(判断和结果是不是相等,可有可不有) Assert.assertEquals(30, result); /Test是注解,当然还有 before after等。 Test public void test2() int result=mymath.mult(10,20); /可以加上一句断言(判断和结果是不是相等,可有可不有) Assert.assertEquals(200, result); 案例:NewXMLSchema.xsd 文件 x

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1