XML
来源:互联网 发布:电子书语音阅读软件 编辑:程序博客网 时间:2024/06/03 19:59
XML的概述:
可扩展的标记语言,自定义的标签, 作用: 传输数据,存取数据,软件的配置文件;
XML的使用:
1.文档声明: 在XML的第一行第一列 <?xml 属性名="属性值".... ?>
属性: varsion :必须定义 版本号 1.0;
encoding: 字符集,使用浏览器打开采用的默认编码
standalone: 描述XML文档是否依赖其他的文件. no需要引入其他文件
2.xml的元素名称规范:可以自定义,就是标签; 名称不能包含冒号(:)
3.属性的命名规范和2相同, 必须使用引号 ""
4.特殊符号 < ≶
5.xml的CDATA区:(字符数据)里面所有数据都当做字符串 <![CDATA[ 内容 ]]>
6.区分大小写,必须有关闭标签.
xml的解析: 通过代码获得
1.xml的解析方式: 不同公司提供了不同的API的实现
DOM解析: 一次性加载到内存,在内存中形成树结构
缺点:文档大,容易造成内存溢出
优点: 对xml进行增删改的操作
SAX解析: 事件驱动的方式,逐行进行解析:
缺点:不能xml进行增删改的
优点: 操作文档大,不会造成内存溢出
JAXP: sun公司提供的
JDOM: 开源组织 DOM4J:开源的组织 *
整个文档叫做document 节点标签 element 属性 attribute 文本 text 整个节点 node
1. DOM4J 解析xml文件;
1.导入jar包
2.创建解析器: saxreader s = new saxreader();
3.解析文档 : document d = s.read("xml/demo1.xml");
4.获取根节点 : element e = d.getrootelement();
注意:只能用上一个节点的Element来使用element方法来获取下一个
5.从根节点往下查找其他节点
4.element("sb") 找第一个s元素
4.elements("sb").get(1); 找第二个元素;
6.获得文本内容 : 5.getText();
2. DOM4J 的 XPath: 两个//不管哪一层都能找到 /*所有 /bbb[1] 第一个 //person[@id='id']找属性
dom4j的xPath支持的API;
List document.selectNodes(Stirng xpath); Node document.selectSingleNode(String xPath);;
1.导入dom4j支持xpath的jar包 jaxen-1,beta
2. 3. 4.document.selectNodes(随便哪个标签,根据上面//写法);
5. 4.attributevalue("port");
创建节点
1. documentHelper.createDocument()
2. documentHelper.createelement()
3. 1.add(2);
4. 2.addattribute("","");
生成xml文件
5. outputformat new (" ",true);
xmlwriter new ();
xmlwriter.write(1);
xml的约束:
xml的约束的概述: 约束xml文档中可以出现哪个标签,标签的顺序,次数
约束的种类和区别:
1.DTD: 语法自成一体
2.schema:语法就是xml的与语法,所以更容易被解析器解析,支持名称空间
有比DTD更加强大的语义和语法的约束
1. DTD的语法: 引入的方式:
1内部的DTD <!DOCTYPE persons[]>
2外部的DTD: ( 本地的DTD system 网络的DTD public //UNKNOWN)
元素:
<!element 元素名称 类别> 类别: EMPTY空 ANY任意的 子元素(是否有序:使用逗号代表有 序的或者竖线| 出现次数? +) PCDAT 文本内容
属性<!ATTLIST 所属标签 属性名称 属性的类别 属性的约束>
属性类别: ID类型: 表示属性的值唯一 CDATA类型: 普通的字符串 枚举
属性约束: REQUIRED必须出现 IMPLIED不是必须的 FIXED value 属性值是固定的
2. schema 语法: 文件名.xsd 他自己又被W3C预定义的标签 约束
1. 简单标签
<element name="标签名" type ="八大基本类型">
复杂类型 <complexType>
有序的 <sequence>
必须有属性:<attribute name="id" type="string" use="required"/>
名称空间: 一个xml只能引入一个DTD约束文档,使用schema约束xml文档可以引入多个
类似与java的包;通过名称空间区分标签和属性来自哪个文档, 唯一的就行
一般URL地址来表示一个名称空间
xmlns: 当前文档应用的名称空间 其中有-instance代表被约束 ,只能写一个
targetNameSpace: 目标名称空间,自己的名称空间;随便写和xsd文件相同
elementFormDefault: 描述标签的前缀,取值为 qualified 代表必须写前缀
质量好的,子元素和父元素必须一样,unqualified不好
2. 在xml中一般w3c写前缀 例如 aa
xmlns:aa="http://www.w3.org/2001/XMLSchema-instance"
xmlns="/mySchema"; 和xsd文件中名称空间一样
aa:schemaLocation="/mySchema mySchema.xsd"
文件的地址 aa:schemalocation="/mySchema 你的xsd文件名";
可扩展的标记语言,自定义的标签, 作用: 传输数据,存取数据,软件的配置文件;
XML的使用:
1.文档声明: 在XML的第一行第一列 <?xml 属性名="属性值".... ?>
属性: varsion :必须定义 版本号 1.0;
encoding: 字符集,使用浏览器打开采用的默认编码
standalone: 描述XML文档是否依赖其他的文件. no需要引入其他文件
2.xml的元素名称规范:可以自定义,就是标签; 名称不能包含冒号(:)
3.属性的命名规范和2相同, 必须使用引号 ""
4.特殊符号 < ≶
5.xml的CDATA区:(字符数据)里面所有数据都当做字符串 <![CDATA[ 内容 ]]>
6.区分大小写,必须有关闭标签.
xml的解析: 通过代码获得
1.xml的解析方式: 不同公司提供了不同的API的实现
DOM解析: 一次性加载到内存,在内存中形成树结构
缺点:文档大,容易造成内存溢出
优点: 对xml进行增删改的操作
SAX解析: 事件驱动的方式,逐行进行解析:
缺点:不能xml进行增删改的
优点: 操作文档大,不会造成内存溢出
JAXP: sun公司提供的
JDOM: 开源组织 DOM4J:开源的组织 *
整个文档叫做document 节点标签 element 属性 attribute 文本 text 整个节点 node
1. DOM4J 解析xml文件;
1.导入jar包
2.创建解析器: saxreader s = new saxreader();
3.解析文档 : document d = s.read("xml/demo1.xml");
4.获取根节点 : element e = d.getrootelement();
注意:只能用上一个节点的Element来使用element方法来获取下一个
5.从根节点往下查找其他节点
4.element("sb") 找第一个s元素
4.elements("sb").get(1); 找第二个元素;
6.获得文本内容 : 5.getText();
2. DOM4J 的 XPath: 两个//不管哪一层都能找到 /*所有 /bbb[1] 第一个 //person[@id='id']找属性
dom4j的xPath支持的API;
List document.selectNodes(Stirng xpath); Node document.selectSingleNode(String xPath);;
1.导入dom4j支持xpath的jar包 jaxen-1,beta
2. 3. 4.document.selectNodes(随便哪个标签,根据上面//写法);
5. 4.attributevalue("port");
创建节点
1. documentHelper.createDocument()
2. documentHelper.createelement()
3. 1.add(2);
4. 2.addattribute("","");
生成xml文件
5. outputformat new (" ",true);
xmlwriter new ();
xmlwriter.write(1);
xml的约束:
xml的约束的概述: 约束xml文档中可以出现哪个标签,标签的顺序,次数
约束的种类和区别:
1.DTD: 语法自成一体
2.schema:语法就是xml的与语法,所以更容易被解析器解析,支持名称空间
有比DTD更加强大的语义和语法的约束
1. DTD的语法: 引入的方式:
1内部的DTD <!DOCTYPE persons[]>
2外部的DTD: ( 本地的DTD system 网络的DTD public //UNKNOWN)
元素:
<!element 元素名称 类别> 类别: EMPTY空 ANY任意的 子元素(是否有序:使用逗号代表有 序的或者竖线| 出现次数? +) PCDAT 文本内容
属性<!ATTLIST 所属标签 属性名称 属性的类别 属性的约束>
属性类别: ID类型: 表示属性的值唯一 CDATA类型: 普通的字符串 枚举
属性约束: REQUIRED必须出现 IMPLIED不是必须的 FIXED value 属性值是固定的
2. schema 语法: 文件名.xsd 他自己又被W3C预定义的标签 约束
1. 简单标签
<element name="标签名" type ="八大基本类型">
复杂类型 <complexType>
有序的 <sequence>
必须有属性:<attribute name="id" type="string" use="required"/>
名称空间: 一个xml只能引入一个DTD约束文档,使用schema约束xml文档可以引入多个
类似与java的包;通过名称空间区分标签和属性来自哪个文档, 唯一的就行
一般URL地址来表示一个名称空间
xmlns: 当前文档应用的名称空间 其中有-instance代表被约束 ,只能写一个
targetNameSpace: 目标名称空间,自己的名称空间;随便写和xsd文件相同
elementFormDefault: 描述标签的前缀,取值为 qualified 代表必须写前缀
质量好的,子元素和父元素必须一样,unqualified不好
2. 在xml中一般w3c写前缀 例如 aa
xmlns:aa="http://www.w3.org/2001/XMLSchema-instance"
xmlns="/mySchema"; 和xsd文件中名称空间一样
aa:schemaLocation="/mySchema mySchema.xsd"
文件的地址 aa:schemalocation="/mySchema 你的xsd文件名";
阅读全文
0 0
- XML
- XML
- XML
- XML
- xml
- xml
- XML
- XML
- XML
- xml
- xml
- XML
- XML
- xml
- xml
- xml
- XML
- XML
- 创建类似于微信或QQ聊天视图的Android库:ChatMessageView
- 蓝桥杯 ADV-223 算法提高 8-1因式分解
- socket编程——TCP
- 考完试
- 蓝桥杯 ADV-208 算法提高 矩阵相乘
- XML
- C++ 复制构造函数不能用 explicit 修饰
- Volatile
- 蓝桥杯 ADV-197 算法提高 P1001
- ThinkPHP 的图像处理功能
- 读取数据库配置文件root无法读取
- 模块 FastCgiModule 通知 ExecuteRequestHandler 处理程序 FastCGI 错误代码 0x8007000d
- AJAX
- WiFi快连、SmartConfig、SmartConnect、smartlink