XML

1.xml

(1)<?xml version="1.0" encoding="UTF-8" standalone=“yes" ?>

(2)样式表<?xml-stylesheet type="text/css" href="my.css" ?>

(3)约束

(4)字符元素 CDATA “<![CDATA[”  “]]>”

 

子元素

1.js调用xml

  ActiveX插件  为ie设置

(1)建立空对象 

           var doc; 

    try{ 

  doc=document.implementation.createDocument("", "", null); 

           } 

    catch (e) { 

    doc=new ActiveXObject("Microsoft.XMLDOM"); 

     }

 (2)把xml数据加载到doc对象中,以后js就可以操作doc对象

IE浏览器加载xml

doc.load("books.xml"); 

doc.loadXML('<books><book isbn="BH10001"><name>java学习</name><price>100</price></book></books>');

 

非IE浏览器加载xml

var data

var dom=new DOMParser();

doc=dom.parseFromString(data,"text/xml"); 

 

(3)操作doc动态增加一条 

Var  root=doc.getElementsByTagName("books")[0];

     root.appendChild(mybook);

     Var  books=root.children;

    for(var i=0;i<books.length;i++){

   var  tr=document.createElement("tr");

   var  td1=document.createElement("td");

   var  td2=document.createElement("td");

   var  td3=document.createElement("td");

   td1.innerHTML=books[i].getAttribute("isbn");

   Var  name=books[i].firstChild.innerHTML;

   td2.innerHTML=name; 

  var  price=books[i].lastChild.innerHTML;

   td3.innerHTML=price;

    }

2.服务器解析

(1)dom解析

Document

DocumentBuilder

DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in)

(2)SAX解析

SAXParserFactory.newInstance().newSAXParser().getXMLReader().setContentHandler(new ContentHandler(){}

 

ibatis

(3)Dom4J

①SAXReader

取得SAXReader的对象

SAXReader reader = new SAXReader(); 

//进行读取文档对象

Document doc = reader.read(Test.class.getResourceAsStream("books3.xml")); 

//得到根元素

Element root=doc.getRootElement();

/通过ID获取

Element book1=doc.elementByID("BH10001");

 


Element name=book1.element("name");

②xpath

Node bookNode=root.selectSingleNode("/books/book");

xpath语法

 * /代表从根节点开始查找

 * /books/book 从根开始找book元素

 * name 从当前节点找name元素

 * book/name 从当前节点找book节点下的name元素

 * book[2] 从当前节点找第二个book节点

 * book/@属性名  从当前节点找book中的属性(第一个)

· book[2]/@属性名 从当前节点找第二本book节点中的属性

②dom解析

DOMReader read=new DOMReader();

DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file)= docW3C

Document doc=read.read(docW3C);

③写xml

 

 

 

Document document=DocumentHelper.createDocument()

XMLWriter writer=new XMLWriter(xmlFile,format);

writer.write(document);

writer.close(); 

 

3.xml文档约束(约束xml文件的书写规范)

(1)DTD(document type definition)文档类型定义

新建book.dtd

‚元素构成  

A.元素element

不带子元素

<!ELEMENT 元素名称 类别>

 

带子元素

<!ELEMENT 元素名称 (元素内容)>

B.属性

属性ATTLIST 

<!ATTLIST 元素名称 属性名称 属性类型 默认值> 

 

属性类型 CDATA   ID  IDREF

属性默认值#REQUIRED    #IMPLIED     #FIXED value

<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>

 

 

<?xml version="1.0" ?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>39.00元</售价>
</书>
<书>
<书名>JavaScript网页开发</书名>
<作者>张孝祥</作者>
<售价>28.00元</售价>
</书>
</书架>

(3)本地路径  SYSTEM

URL形式PUBLIC

1.使用本地的

<!DOCTYPE struts SYSTEM  "struts-2.3.dtd">

2.使用public网络上的dtd文档

3.使用eclipse提供的模版-//Apache Software Foundation/......

4.用户自定义dtd

 

 

 

 

(2)

4.schema

(1)xmlns-xml的命名空间   xsd-xml的schema定义文件

xmlns:tns自己使用的命名空间

targetNamespace让受约束的xml文档使用此命名空间

(2)基本类型

扩展类型 simpletype  内部嵌入

<simpleType name=“mytype">

<restriction base="int">

<minInclusive value="1"></minInclusive>

<maxInclusive value="100"></maxInclusive>

</restriction>

</simpleType>

 

<xs:element name ="元素1 " type=“tns:mytype  "/> 

 

 

复合类型 complex type  内部嵌入   

转载于:https://my.oschina.net/jd16manson/blog/662599

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值