答:有DOM,SAX,STAX等

DOM:处理大型文件时其性能低落的非常厉害。
这个问题是由DOM的树构造所造成的,这种构造占用的内存较多,而且DOM必须在解析文件之前把全体文档装入内存,适宜对XML的随机访问SAX:不现于DOM,SAX是事宜驱动型的XML解析办法。
它顺序读取XML文件,不须要一次全部装载全体文件。
当碰着像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事宜,用户通过在其回调事宜中写入处理代码来处理XML文件,适宜对XML的顺序访问

STAX:Streaming APIfor XML (StAX)

配置xml文件后jsp显示源码javaXML部门 jQuery

讲解这些差异是不须要特殊去比较,就像说传智播客与其他培训机构的差异时,我们只需说清楚传智播客有什么特点和优点就行了,这就已经间接回答了彼此的差异。

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(newjavax.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.0encoding=gb2312?&gt;

<person>

<name>王小明</name>

<college>信息学院</college>

<telephone>6258113</telephone>

<notes>男,1955年生,博士,95年调入海南大学</notes>

</person>

事宜回调类SAXHandler.java

import java.io.;

importjava.util.Hashtable;

import org.xml.sax.;

public classSAXHandler extends HandlerBase

{

private Hashtabletable = new Hashtable();

private StringcurrentElement = null;

private StringcurrentValue = null;

public voidsetTable(Hashtable table)

{

this.table = table;

}

public HashtablegetTable()

{

return table;

}

public voidstartElement(String tag, AttributeList attrs)

throws SAXException

{

currentElement = tag;

}

public voidcharacters(char[] ch, int start, int length)

throws SAXException

{

currentValue = newString(ch, start, length);

}

public voidendElement(String name) throws SAXException

{

if(currentElement.equals(name))

table.put(currentElement,currentValue);

}

}

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

<HTML>

<HEAD>

<TITLE>阐发XML文件people.xml</TITLE>

</HEAD>

<BODY>

<%@ pageerrorPage=ErrPage.jsp

contentType=text/html;charset=GB2312%>

<%@ pageimport=java.io. %>

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

<%@ pageimport=org.w3c.dom. %>

<%@ pageimport=org.xml.sax. %>

<%@ pageimport=javax.xml.parsers.SAXParserFactory %>

<%@ pageimport=javax.xml.parsers.SAXParser %>

<%@ pageimport=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(newInputSource(reader), handler);

Hashtable hashTable =handler.getTable();

out.println(<TABLEBORDER=2><CAPTION>西席信息表</CAPTION>);

out.println(<TR><TD>姓名</TD>+ <TD> +

(String)hashTable.get(newString(name)) + </TD></TR>);

out.println(<TR><TD>学院</TD>+ <TD> +

(String)hashTable.get(newString(college))+</TD></TR>);

out.println(<TR><TD>电话</TD>+ <TD> +

(String)hashTable.get(newString(telephone)) + </TD></TR>);

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

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

out.println(</TABLE>);

%>

</BODY>

</HTML>

5、XML文档定义有几种形式?它们之间有何实质差异?解析XML文档有哪几种办法?

a:两种形式dtd schema,b:实质差异:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),c:有DOM,SAX,STAX等

DOM:处理大型文件时其性能低落的非常厉害。
这个问题是由DOM的树构造所造成的,这种构造占用的内存较多,而且DOM必须在解析文件之前把全体文档装入内存,适宜对XML的随机访问

SAX:不现于DOM,SAX是事宜驱动型的XML解析办法。
它顺序读取XML文件,不须要一次全部装载全体文件。
当碰着像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事宜,用户通过在其回调事宜中写入处理代码来处理XML文件,适宜对XML的顺序访问

STAX:Streaming API for XML (StAX)