`
god_sky
  • 浏览: 141913 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Xml方面xml有哪些解析技术?区别是什么?你在项目中用到了xml技术的哪些方面?如何实现的?

    博客分类:
  • java
阅读更多

Xml方面xml有哪些解析技术?区别是什么?你在项目中用到了xml技术的哪些方面?如何实现的?

 

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

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

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

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

1、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("老师");
     org.w3c.dom.Element wang=doc.createElement("王");
     org.w3c.dom.Element liu=doc.createElement("刘");
     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时用到的架包

    StAX结合了DOM和SAX的优点,提供了向前迭代的XML解析方式。与SAX不同,StAX允许应用程序以编程方式控制解析过程,通过`javax.xml.stream.XMLInputFactory`和`javax.xml.stream.XMLStreamReader`接口可以逐个读取XML...

    MusicXML 解析与布局

    MusicXML是一种开放标准的音乐符号交换格式,它允许数字音乐...总之,"MusicXML解析与布局"项目涵盖了XML解析、数据结构设计、图形渲染、音乐理论等多个方面的知识,对于深入理解音乐和计算机科学的结合具有重要意义。

    java解析xml,dom解析,jsoup解析,完整项目

    从这个项目中,你可以学习到如何在Java环境中设置和使用DOM解析器以及Jsoup库来处理XML数据。DOM解析适用于需要深度遍历和复杂操作的场景,而Jsoup则在处理HTML和简单XML时表现出更高的灵活性和易用性。通过实践这两...

    xml解析demo以及资料

    在这个“xml解析demo以及资料”中,我们将探讨如何将XML数据解析到数据库,以及如何从数据库反向转换为XML。 首先,让我们关注“convert工程”。这个项目可能包含了一系列的程序或脚本,用于处理XML数据与数据库...

    android的xml文件的解析

    在Android开发中,XML文件广泛用于布局设计、配置...在实际项目中,还有一种基于SAX的拉式解析库——PULL解析器(Android提供的`XmlPullParser`),它在内存效率和灵活性之间找到了一个平衡点,也是常用的XML解析方法。

    JSP页面解析XML并且存入数据库

    本项目中,我们探讨的是如何在JSP页面中解析XML文件,并将解析得到的数据存入MySQL数据库。 首先,让我们深入了解XML。XML是一种自描述的、结构化的数据格式,它允许我们以树形结构来组织数据,便于机器理解和处理...

    java大作业xml解析

    在实现Java XML解析时,通常会用到如Java的JAXB(Java Architecture for XML Binding)库用于对象与XML之间的映射,或者使用DOM、SAX、StAX的API,如javax.xml.parsers.DocumentBuilderFactory、org.xml.sax.helpers...

    Unity实现读取XML和数据写入到XML

    本项目实现了在Unity中对XML文件的读取和写入操作,这涉及到Unity的C#编程以及XML的序列化和反序列化技术。 XML序列化是指将对象的状态转换为XML文档的过程,而反序列化则是将XML文档恢复为对象的过程。在Unity中,...

    XML文档解析相关工具

    在Java程序开发中,处理XML文档时,我们常常会用到一些库来帮助解析和操作XML。本话题将详细介绍两个重要的XML处理工具:dom4j和jaxen,以及它们在解析XML文档中的作用。 首先,dom4j是Java的一个非常流行的XML处理...

    解析xml文件导入数据,并在前端分页展示

    XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于存储和传输结构化数据...整个流程涉及的技术涵盖了XML处理、数据库操作、前后端通信等多个方面,对于提升数据处理和Web应用开发的能力十分有帮助。

    java平台中使用DOM解析xml文件

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,特别是在Java应用程序中广泛使用。DOM(Document Object Model)是处理XML的一种方法,它将XML文档转换为一个树形结构,允许开发者通过编程...

    Java解析XML的jar包+四种解析方法

    java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    此代码用于对android中XML类型的数据进行完整的解析

    学习和掌握这些XML解析技术对于提升Android开发能力至关重要,无论是在处理用户界面布局、读取配置文件,还是与其他服务交换数据,都会用到XML解析。通过实践和理解本代码,你可以更好地理解和运用这些概念,提高...

    解析xml流

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在互联网上交换...同时,掌握相关工具和编程语言的使用,如Perl中的LWP::UserAgent和XML解析模块,能帮助我们在实际工作中更高效地处理XML数据。

    http请求网络解析xml以及JSON的demo

    在IT行业中,网络请求是应用程序与服务器交互的基础,XML和JSON则是常见的数据交换格式。本教程将通过一个名为"HTTP请求网络解析XML以及JSON的demo"的实例,深入讲解如何利用Java实现这两种请求方式,并对返回的数据...

    解析xml文件需要的jar包

    这可能是因为混淆了Java和ASP.NET的环境,或者是在讨论一个包含了Web应用的项目结构,其中XML解析可能是在服务器端的Java代码中进行的。 在ASP.NET环境中,解析XML通常会用到.NET框架自带的`System.Xml`命名空间,...

    java一键xml转map,一键map转xml工具类

    XML因其结构化和易于解析的特性,在数据交换和配置文件中广泛使用,而Map则作为Java中存储键值对的高效数据结构。在实际开发中,我们可能需要在XML和Map之间进行转换,以便于数据处理。本文将详细讲解如何使用Java...

    将EXCEL文件全方位解析成生成XML数据

    在IT领域,Excel和XML是两种非常重要的数据格式,它们各有各的应用场景和优势。Excel通常用于处理表格数据,而XML则是一种结构化...在实际项目中,应根据具体需求选择合适的工具和技术,确保数据转换的效率和准确性。

    基于XML技术的在线论坛

    在C#环境中,开发基于XML的在线论坛,可能会用到以下技术: 1. XmlDocument或XDocument类:用于读写XML文件。C#中的System.Xml命名空间提供了这些类来解析和操作XML文档。 2. LINQ to XML:这是一种更现代、更简洁...

    xml解析和组装源代码

    XML(eXtensible Markup Language)是一...掌握这些XML相关的知识和技术,可以有效地进行XML解析、组装和数据交换,提升软件开发的效率和灵活性。在实际项目中,根据需求和性能要求选择合适的解析和组装方法至关重要。

Global site tag (gtag.js) - Google Analytics