欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【前端开发】XML开发手册

程序员文章站 2024-03-24 15:30:40
...

XML(可扩展标记语言)是W3C的推荐标准,是一种很像超文本标记语言的标记语言,它的设计宗旨是传输数据,而不是显示数据;它的标签没有被预定义,需要自行定义标签;具有自我描述性。

XML 不是 HTML 的替代,XML 和 HTML 为不同的目的而设计:XML 被设计用来传输和存储数据,其焦点是数据的内容;HTML 被设计用来显示数据,其焦点是数据的外观;HTML 旨在显示信息,而 XML 旨在传输信息。

关于XML的详细教学内容:XML开发手册

【前端开发】XML开发手册

可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。

详细概念:
1998年2月,W3C正式批准了可扩展标记语言的标准定义,可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发。可扩展标记语言可以使我们能够更准确的搜索,更方便的传送软件组件,更好的描述一些事物。例如电子商务交易等。

  • 它被设计用来传输和存储数据;
  • 超文本标记语言被设计用来显示数据。
  • 它们都是标准通用标记语言的子集。

什么是可扩展标记语言?

  • 可扩展标记语言是一种很像超文本标记语言的标记语言。
  • 它的设计宗旨是传输数据,而不是显示数据。
  • 它的标签没有被预定义。您需要自行定义标签。
  • 它被设计为具有自我描述性。
  • 它是W3C的推荐标准。

可扩展标记语言和超文本标记语言之间的差异

  • 它不是超文本标记语言的替代。
  • 它是对超文本标记语言的补充。
  • 它和超文本标记语言为不同的目的而设计:
  • 它被设计用来传输和存储数据,其焦点是数据的内容。
  • 超文本标记语言被设计用来显示数据,其焦点是数据的外观。
  • 超文本标记语言旨在显示信息,而它旨在传输信息。
  • 对它最好的描述是:它是独立于软件和硬件的信息传输工具。

可扩展标记语言是W3C的推荐标准
XML 于 1998 年 2 月 10 日成为 W3C 的推荐标准。

可扩展标记语言无所不在
超文本标记语言。
XML 是各种应用程序之间进行数据传输的最常用的工具。

格式特性:
它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,它仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:它极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。

它和超文本标记语言语法区别:超文本标记语言的标记不是所有的都需要成对出现,它则要求所有的标记必须成对出现;HTML标记不区分大小写,它则大小敏感,即区分大小写。

结合:
标准通用标记语言、超文本标记语言是它的先驱。标准通用标记语言它是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结构,主要用于大量高度结构化数据的防卫区和其他各种工业领域,利于分类和索引。同它相比,定义的功能很强大,缺点是它不适用于Web数据描述,而且标准通用标记语言软件价格非常昂贵。 HTML相信大家都比较熟悉,即超文本标识语言,它的优点是比较适合web页面的开发。但它有一个缺点是标记相对少,只有固定的标记集如<p>.<strong>等。缺少标准通用标记语言的柔性和适应性。不能支持特定领域的标记语言,如对数学、化学、音乐等领域的表示支持较少。举个例子来说,开发者很难在网页上表示数学公式、化学分子式和乐谱。它结合了标准通用标记语言和HTML的优点并消除其缺点。XML仍然被认为是一种标准通用标记语言。比标准通用标记语言要简单,但能实现标准通用标记语言的大部分的功能。1996年的夏天,标准通用标记语言,使其在Web中,既能利用标准通用标记语言的长处,又保留html的简单性。

XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows, Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。
友好。

为了使得标准通用标记语言显得用户友好,它重新定义了标准通用标记语言的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得标准通用标记语言在设计网站时显得复杂化。它保留了标准通用标记语言的结构化功能,这样就使得网站设计者可以定义自己的文档类型,它同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。

XML 不是 HTML 的替代,XML 和 HTML 为不同的目的而设计:XML 被设计用来传输和存储数据,其焦点是数据的内容;HTML 被设计用来显示数据,其焦点是数据的外观;HTML 旨在显示信息,而 XML 旨在传输信息。)

  1. 读取XML
  2. 写入XML
  3. 新建XML
  4. 创建构造XML

 创建新的xml文档:

1 /构造一个XML解析器 并且创建新的文档/
 2 1     Document document = null;
 3 2         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 4 3         try {
 5 4             DocumentBuilder builder = factory.newDocumentBuilder();
 6 5             document = builder.newDocument();//创建一个新的XML文件
 7 6             //document = builder.parse(fileName);//解析已存在的XML文件
 8 7         } catch (ParserConfigurationException e) {
 9 8             e.printStackTrace();
10 9         }

将内存中的xml输出到文件上面:

1 //将内存中的xml,输出到文件上面
 2         Transformer tf = null;
 3         TransformerFactory tff = TransformerFactory.newInstance();
 4         try {
 5             tf = tff.newTransformer();
 6             tf.transform(new DOMSource(document), new StreamResult("src/test.xml"));
 7 
 8         } catch (TransformerConfigurationException e) {
 9             e.printStackTrace();
10         } catch (TransformerException e) {
11             e.printStackTrace();
12         }

构建xml:

 1         Element root = document.createElement("root");//创建根目录
 2         
 3         Element student = document.createElement("student");
 4         
 5         student.setAttribute("name", "xiaoming");//设置student 的属性值
 6         
 7         /*创建student的子元素*/
 8         Element id = document.createElement("id");
 9         Element sex = document.createElement("sex");
10         Element age = document.createElement("age");
11         
12         /*设置元素的文本*/
13         id.setTextContent("0001");
14         sex.setTextContent("man");
15         age.setTextContent("18");
16         
17         /*将子元素添加到父元素(student)中*/
18         student.appendChild(id);
19         student.appendChild(sex);
20         student.appendChild(age);
21         
22         root.appendChild(student);//将元素(节点)student 添加到根目录(root)中去
23         document.appendChild(root);//将根目录添加到文档中去

输出结果:

1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <root>
3     <student name="xiaoming">
4         <id>0001</id>
5         <sex>man</sex>
6         <age>18</age>
7     </student>
8 </root>

获取XML中的数据:

1 <?xml version="1.0" encoding="UTF-8" standalone="no"?><root>
 2     <student name="xiaoming">
 3         <id>0001</id>
 4         <sex>man</sex>
 5         <age>18</age>
 6     </student>
 7     <student name="xiaozhu">
 8         <id>0002</id>
 9         <sex>man</sex>
10         <age>20</age>
11     </student>
12     <student name="xiaohong">
13         <id>0003</id>
14         <sex>female</sex>
15         <age>15</age>
16     </student>
17 </root>

对XML进行查找操作:

 1 //获取student中属性name=xiaoming的所有信息
 2         NodeList list_st =document.getElementsByTagName("student");
 3         /*遍历所有student的元素*/
 4         for(int i=0;i<list_st.getLength();i++)
 5         {
 6             Node n =list_st.item(i);
 7             
 8             Element student= (Element)n;//必须强转为元素才能获取到设置的属性,节点获取不了属性
 9             
10             /*找出student中属性xiaoming的节点*/
11             if(student.getAttribute("name").equals("xiaoming"))
12             {
13                 /*获取所有标签中的文本信息*/
14                 String id = student.getElementsByTagName("id").item(0).getTextContent();
15                 String sex = student.getElementsByTagName("sex").item(0).getTextContent();
16                 String age = student.getElementsByTagName("age").item(0).getTextContent();
17                 
18                 System.out.println("id:"+id);
19                 System.out.println("sex:"+sex);
20                 System.out.println("age:"+age);
21                 /*输出:
22                  * id:0001
23                  * sex:man
24                  * age:18
25                  */
26             }
27         }

阿里云开发者社区全面升级,一站式体验,用得更爽:(阿里云开发者社区首页