XML技术须知讲解

1、xml有哪些解析技术?区别是什么?

2、你在项目中用到了xml技术的哪些方面?如何实现的?

3、用jdom解析xml文件时如何解决中文问题?如何解析?

4、编程用JAVA解析XML的方式.

5、xml有哪些解析技术?区别是什么?

6、XML的作用和用途!

答:有DOM,SAX,STAX等
  DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问STAX:Streaming API for XML (StAX)

  2、你在项目中用到了xml技术的哪些方面?如何实现的?

  答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。

  3、用jdom解析xml文件时如何解决中文问题?如何解析?

  答:看如下代码,用编码方式加以解决
 

 package test;
  import java.io.*;
  public class DOMTest
  {
   private String inFile = "c:\\people.xml";
   private String outFile = "c:\\people.xml";
   public static void main(String args[])
   {
    new DOMTest();
   }
   public DOMTest()
   {
    try
    {
     javax.xml.parsers.DocumentBuilder builder=javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
     org.w3c.dom.Document doc=builder.newDocument();
     org.w3c.dom.Element root=doc.createElement_x("老师");
     org.w3c.dom.Element wang=doc.createElement_x("王");
     org.w3c.dom.Element liu=doc.createElement_x("刘");
     wang.appendChild(doc.createTextNode("我是王老师"));
     root.appendChild(wang);
     doc.appendChild(root);
     javax.xml.transform.Transformer transformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();
     transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312");
     transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");
     transformer.transform(new javax.xml.transform.dom.DOMSource(doc),new javax.xml.transform.stream.StreamResult(outFile));
    }
    catch (Exception e)
    {
     System.out.println (e.getMessage());
    }
   }
  }

  4、编程用JAVA解析XML的方式.
答:用SAX方式解析XML,XML文件如下:
 
    王小明
    信息学院  
    6258113
    男,1955年生,博士,95年调入海南大学
 
   事件回调类SAXHandler.java
 

 import java.io.*;
  import java.util.Hashtable;
  import org.xml.sax.*;
  public class SAXHandler extends HandlerBase
  {
   private Hashtable table = new Hashtable();
   private String currentElement = null;
   private String currentValue = null;
   public void setTable(Hashtable table)
   {
    this.table = table;
   }
   public Hashtable getTable()
   {
    return table;
   }
   public void startElement(String tag, AttributeList attrs)
   throws SAXException
   {
    currentElement = tag;
   }
   public void characters(char[] ch, int start, int length)
   throws SAXException
   {
   currentValue = new String(ch, start, length);
   }
   public void endElement(String name) throws SAXException
   {
    if (currentElement.equals(name))
    table.put(currentElement, currentValue);
   }
  }

JSP内容显示源码,SaxXml.jsp:

<HTML>

<HEAD>

<TITLE>剖析XML文件people.xml</TITLE>

</HEAD>

<BODY>

<%@ page errorPage="ErrPage.jsp" contentType="text/html;charset=GB2312" %>

<%@ page import="java.io.*" %>

<%@ page import="java.util.Hashtable" %>

<%@ page import="org.w3c.dom.*" %> <%@ page import="org.xml.sax.*" %>

<%@ page import="javax.xml.parsers.SAXParserFactory" %>

<%@ page import="javax.xml.parsers.SAXParser" %>

<%@ page import="SAXHandler" %>

<%

File file = new File("c:\people.xml");

FileReader reader = new FileReader(file);

Parser parser;

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser sp = spf.newSAXParser();

SAXHandler handler = new SAXHandler();

sp.parse(new InputSource(reader), handler);

Hashtable hashTable = handler.getTable();

out.println("<TABLE BORDER=2><CAPTION>教师信息表</CAPTION>"); out.println("<TR><TD>姓名</TD>" + "<TD>" + (String)hashTable.get(new String("name")) + "</TD></TR>");

out.println("<TR><TD>学院</TD>" + "<TD>" + (String)hashTable.get(new String("college"))+"</TD></TR>");

out.println("<TR><TD>电话</TD>" + "<TD>" + (String)hashTable.get(new String("telephone")) + "</TD></TR>");

out.println("<TR><TD>备注</TD>" + "<TD>" +

(String)hashTable.get(new String("notes")) + "</TD></TR>");

out.println("</TABLE>");

%>

</BODY>

</HTML>

XML的作用和用途!

1、数据交换 
XML使用元素和属性来描述数据。在数据传送过程中,XML始终保留了诸如父/子关系这样的数据结构。几个应用程序 可以共享和解析同一个XML文件,不必使用传统的字符串解析或拆解过程。 相反,普通文件不对每个数据段做描述(除了在头文件中),也不保留数据关系结构。使 用XML做数据交换可以使应用程序更具有弹性,因为可以用位置(与普通文件一样)或用元 素名(从数据库)来存取XML数据。 
2、Web服务 
Web服务是最令人激动的革命之一,它让使用不同系统和不同编程语言的人们能够相互交 流和分享数据。其基础在于Web服务器用XML在系统之间交换数据。交换数据通常用XML标 记,能使协议取得规范一致,比如在简单对象处理协议(Simple Object Access Protoc ol, SOAP)平台上。 SOAP可以在用不同编程语言构造的对象之间传递消息。这意味着一个C#对象能够与一个 Java对象进行通讯。这种通讯甚至可以发生在运行于不同操作系统上的对象之间。DCOM , CORBA或Java RMI只能在紧密耦合的对象之间传递消息,SOAP则可在松耦合对象之间传 递消息。 
3、内容管理 
XML只用元素和属性来描述数据,而不提供数据的显示方法。这样,XML就提供了一个优 秀的方法来标记独立于平台和语言的内容。 使用象XSLT这样的语言能够轻易地将XML文件转换成各种格式文件,比如HTML, WML, PDF, flat file, EDI, 等等。XML具有的能够运行于不同系统平台之间和转换成不同格式目标文件的能力使得它成为内容管理应用系统中的优秀选择。  
4、Web集成 
现在有越来越多的设备也支持XML了。使得Web开发商可以在个人电子助理和浏览器之间 用XML来传递数据。 为什么将XML文本直接送进这样的设备去呢?这样作的目的是让用户更多地自己掌握数据 显示方式,更能体验到实践的快乐。常规的客户/服务(C/S)方式为了获得数据排序或更 换显示格式,必须向服务器发出申请;而XML则可以直接处理数据,不必经过向服务器申 请查询-返回结果这样的双向“旅程”,同时在设备也不需要配制数据库。 甚至还可以对设备上的XML文件进行修改并将结果返回给服务器。想像一下,一台具有互 联网功能并支持XML的电冰箱将会给市场带来多么大的冲击吧。你从此不必早起去取牛奶 
了! 
5、配制 
许多应用都将配制数据存储在各种文件里,比如.INI文件。虽然这样的文件格式已经使 用多年并一直很好用,但是XML还是以更为优秀的方式为应用程序标记配制数据。使用. NET里的类,如XmlDocument和XmlTextReader,将配制数据标记为XML格式,能使其更具 可读性,并能方便地集成到应用系统中去。使用XML配制文件的应用程序能够方便地处理 所需数据,不用象其他应用那样要经过重新编译才能修改和维护应用系统。 如前所述,这里提到的五种使用XML的途径不包括全部场合。

版权声明:感觉我写的还算不错的的话希望你能够动动你的鼠标和键盘为我点上一个赞或是为我奉献上一个评论,在下感激不尽!_______________________________________________________欢迎转载,希望在你转载的同时,添加原文地址,谢谢配合

时间: 2024-10-08 16:43:28

XML技术须知讲解的相关文章

【Java】Java XML 技术专题

XML 基础教程 XML 和 Java 技术 Java XML文档模型 JAXP(Java API for XML Parsing) StAX(Streaming API for XML) XJ(XML Enhancements for Java) XML 验证 XPath XQuery XSL 转换处理器 XStream 数据绑定 本专题汇总了大量面向 Java 开发人员的 XML 技术文章和教程,内容涉及 XML 基础.Java XML 的文档模型.编程 API 与数据绑定框架以及 Java

xml技术DTD约束定义

XML约束 在XML技术中,可以编写一个文档来约束一个xml文档的书写规范,这称之为XML约束为什么需要XML约束? class.xml <stu><面积>?人怎么会有面积元素? xml 文件标签可以随便写,dtd可以对其有所要求按照合理的需求写 xml文件约束--dtd document type definition 文档类型定义作用: 定义xml标签约束,使开发者按照定义书写,也可以约束html文件 使用: 在项目中如需要一个xml文件,项目经理 可定义一个dtd文件,要求所

打造完美的xml技术解决方案(dom4j/xstream)

转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专门的解析程序. XML 出现以后解决了这个问题,程序面对的是有固定格式的 XML 文件,只要通过标准 API 就可以进行 XML 文件的处理. XML 文件在案例系统中应用是很广泛的,比如 ClientConfig.xml . ServerConfig.xml 文件就是使用 XML 文件来做配置文件

XML技术-Schema约束-Dom4j-Xpath详解

这辈子没办法做太多事情所以每一件都要做到精彩绝伦 People can't do too many things in my life,so everything will be wonderful   乔布斯 本文档参考资料w3cschool.CHM  API教程文档免费下载地址http://down.51cto.com/data/2300287 XML技术 1.     什么是XML XML 指可扩展标记语言EXtensibleMarkup Language XML 是一种标记语言很类似 H

PHP面向对象技术(全面讲解)

PHP面向对象技术(全面讲解) 本部分一共包括以下一些技术点: 1.面象对象的概念 2.什么是类, 什么是对象, 类和对象这间的关系 3.什么是面向对象编程呢? 4.如何抽象出一个类? 5.如何实例化对象 6.如何去使用对象中的成员 7.特殊的引用"$this"的使用 8.构造方法与析构方法 9.封装性 10.__set() __get() __isset() __unset()四个方法的应用 11.类的继函 13.重载新的方法 14.访问类型 15.静态成员以及类中常量的使用 16.

ajax(Asynchronous JavaScript + XML) 技术学习

参考文档:https://developer.mozilla.org/en-US/docs/AJAX 本文进行了大致翻译. Ajax 本身本不是一门技术,而是在2005年由Jesse James Garrett首创的描述为一个"新"途径来应用许多已存在的技术,包括:HTML 或者 XHTML, Cascading Style Sheets, JavaScript, The Document Object Model, XML, XSLT, 和最重要的 XMLHttpRequest ob

XML技术

XML是Extensible Markup Language的缩写,即可扩展标记语言,是一种简单的数据存储元,使用一系列简单的标记来描述数据. XML的特点: XML与操作系统,编程语言的开发平台都无关. 规范统一. XML的作用: 数据存储 数据交换 数据配置 格式良好的XML文档需要遵循如下规则: 必须有XML声明语句. 必须有且有一个根元素. 标签大小写敏感. 属性值用双引号. 标签成对. 元素正确嵌套. 如何确保编写的XML文档始终是格式良好的呢?其中一种是使用DTD验证XML. DTD

解析XML技术

转载:http://developer.51cto.com/art/200903/117512.htm XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Defin

XML技术之SAX解析器

1.解析XML文件有三种解析方法:DOM SAX DOM4J. 2.首先SAX解析技术只能读取XML文档中的数据信息,不能对其文档中的数据进行添加,删除,修改操作:这就是SAX解析技术的一个缺陷. 3.SAX解析器中可以定义多个事件处理器对象. SAX解析技术原理图: //使用SAX技术解析XML文件的步骤?    public static void saxXml() throws Exception{        //第一步:调用SAXParserFactory.newInstance()