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文件如下:
<?xml version="1.0" encoding="gb2312"?>
<person>
<name>王小明</name>
<college>信息学院</college>
<telephone>6258113</telephone>
<notes>男,1955年生,博士,95年调入海南大学</notes>
</person>
事件回调类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 面试题及答案 XML 面试题及答案是一份涵盖了 XML 面试中的热门问题和答案的资源,旨在帮助面试者更好地准备面试。以下是从中提取的知识点: 1. XML 解析技术:DOM、SAX 和 STAX XML 有多种解析技术,包括 DOM...
### Java程序员的10道XML面试题详解 #### 1. XML是什么? XML,全称为**可扩展标记语言**(Extensible Markup Language),是一种用于描述数据的标记语言。它允许开发者根据自身需求创建自定义标签,这使得XML非常...
以下是一些关于XML的中级面试题及其解答: 1. XML有哪些解析技术?区别是什么? - DOM(Document Object Model):它将XML文件解析为一个树形结构,允许开发者在整个文档中随机访问节点。然而,DOM一次性加载整个...
XML 解析技术和文档定义形式 XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。在进行 XML 开发时,需要了解 XML 的解析技术和文档定义形式。下面将详细介绍 XML 解析技术和文档定义形式。 ...
XML面试题部分会测试求职者对XML的理解,包括XML结构、DTD、XSD、XPath、XSLT等,以及XML在Java中的应用。 最后,百战程序员1573题全套1.0版.pdf和sxt_baizhan_1573(1.0).pdf很可能是全面的题库,覆盖了Java及周边...
115个Java面试题和答案——终极(上.pdf ...Java程序员的10道XML面试题.pdf java面试题.pdf Java面试题以及答案.pdf Spring 面试题分析.pdf sql面试题.pdf Struts2面试题分析.pdf 面试题整理.pdf
【XML面试题】 XML用于数据交换和配置文件,面试可能涵盖DOM、SAX、StAX解析方式,XPath表达式,以及XML Schema或DTD的验证。面试官还会关注如何在Java中处理XML,比如使用JAXB进行对象与XML之间的序列化和反序列化...
最后,"XML面试题"则可能涉及XML文档结构、解析方式(DOM和SAX)、命名空间、XSD验证等。XML作为数据交换格式,对于配置文件管理和数据传输有着重要作用。 综合以上,这个资料包提供的面试题覆盖了Java从基础到进阶...
金蝶公司面试题及试题简答涵盖了多个IT相关领域的知识点,包括Java基础、XML、数据库、软件设计模式、EJB等。 首先,让我们来看一下Java基础部分。在Java基础部分中,提到了Integer和Long的比较、equals()方法的...
在互联网行业中,面试是检验求职者技能和知识的关键环节,特别是在Java...而"Document.xml"、"bin"、"xsd"等文件可能是文档的元数据或结构描述,可能包含了更具体的面试题解析和示例代码,有助于深入理解上述知识点。
这些面试题覆盖了XML的基础知识和核心概念,对于Java程序员来说,理解和掌握XML的相关技术是至关重要的,因为XML是许多Java框架和库中的重要组成部分,如Spring框架中的配置文件、SOAP Web服务的交换格式等。...
列举几个典型实用的例子: 实例37 读取随机文件 实例38 操作EXECL文件 实例39 生成PDF文件 实例47 使用JAVAMAIL发送邮件 实例48 使用JAVAMAIL接收邮件 实例62 多线程 实例68 使用DOM解析XML ...面试题集合.pdf
18. XML与JSON序列化:学习如何将对象序列化为XML或JSON格式,以及反序列化回对象。 19. ADO.NET与数据库交互:掌握使用SqlConnection、SqlCommand等类进行数据库操作的方法。 20. WPF与WinForms:对于UI开发,理解...
本资源摘要信息涵盖了 C# 面试题的方方面面,涵盖了 XML、XSD、XSL、J2EE、Persistent Object、加密算法、设计模式、架构设计、测试等多个方面的知识点。 XML、XSD、XSL 在面试题中,我们可以看到 XML、XSD、XSL ...
标题中的“ibm 2010 面试题(uml转xml)”是指IBM公司在2010年面试中提出的一个技术问题,涉及到将统一建模语言(UML)模型转换为可扩展标记语言(XML)的技能。UML是一种用于软件工程的图形化建模语言,而XML是一种...
【标题】:“面试题 C语言 XML文档”指的是在面试中可能会遇到的关于C语言与XML(可扩展标记语言)的题目。XML是一种用于存储和传输数据的结构化语言,常用于应用程序之间的数据交换,而C语言则是一种基础且强大的...
中软面试题涵盖了多个IT领域的知识点,包括Java编程、XML解析、JNDI、设计模式、面向对象编程、集合框架、排序算法和数据库查询等。下面将逐一解读这些知识点。 抽象类和接口 抽象类和接口是Java编程中两种重要的...
大数据技术之高频面试题8.0.2.pdf 以下是从给定文件中生成的相关知识点: Linux和Shell * Linux常用高级命令:包括文件管理、进程管理、磁盘管理、网络管理等命令。 * Shell常用工具及写过的脚本:包括sed、awk、...
【Delphi面试题 Delphi题目】的解析涵盖了多个Delphi编程和数据库操作的知识点,以下是详细解答: 1. Delphi元件派生: - 如果一个元件希望放到IDE的元件面板上,它必须从(TComponent)类派生。 - 如果一个元件能...