html页面如下:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="javascript">
var http_request = false;
function send_request(url) {//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange = processRequest;
// 确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open("GET", url, true);
http_request.send(null);
}
// 处理返回信息的函数
function processRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var returnObj = http_request.responseXML;
var xmlobj = http_request.responseXML;
var employees = xmlobj.getElementsByTagName("employee");
var feedbackStr = "";
for(var i=0;i<employees.length;i++) { // 循环读取employees.xml的内容
var employee = employees[i];
feedbackStr += "员工:" + employee.getAttribute("name");
feedbackStr += " 职位:" + employee.getElementsByTagName("job")[0].firstChild.data;
feedbackStr += " 工资:" + employee.getElementsByTagName("salary")[0].firstChild.data;
feedbackStr += "\r\n";
}
alert(feedbackStr);
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
</script>
</head><body>
<input type="button" name="read" value="读取XML" onClick="send_request('employees.xml')">
</body>
</html>
XML 如下:
<?xml version="1.0" encoding="gb2312"?>
<employees>
<employee name="J.Doe">
<job>Programmer</job>
<salary>32768</salary>
</employee>
<employee name="A.Baker">
<job>Sales</job>
<salary>70000</salary>
</employee>
<employee name="Big Cheese">
<job>CEO</job>
<salary>100000</salary>
</employee>
</employees>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="javascript">
var http_request = false;
function send_request(url) {//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange = processRequest;
// 确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open("GET", url, true);
http_request.send(null);
}
// 处理返回信息的函数
function processRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var returnObj = http_request.responseXML;
var xmlobj = http_request.responseXML;
var employees = xmlobj.getElementsByTagName("employee");
var feedbackStr = "";
for(var i=0;i<employees.length;i++) { // 循环读取employees.xml的内容
var employee = employees[i];
feedbackStr += "员工:" + employee.getAttribute("name");
feedbackStr += " 职位:" + employee.getElementsByTagName("job")[0].firstChild.data;
feedbackStr += " 工资:" + employee.getElementsByTagName("salary")[0].firstChild.data;
feedbackStr += "\r\n";
}
alert(feedbackStr);
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
</script>
</head><body>
<input type="button" name="read" value="读取XML" onClick="send_request('employees.xml')">
</body>
</html>
XML 如下:
<?xml version="1.0" encoding="gb2312"?>
<employees>
<employee name="J.Doe">
<job>Programmer</job>
<salary>32768</salary>
</employee>
<employee name="A.Baker">
<job>Sales</job>
<salary>70000</salary>
</employee>
<employee name="Big Cheese">
<job>CEO</job>
<salary>100000</salary>
</employee>
</employees>
解决方案 »
- 忽然想说下java的api文档,太省懒事儿了。。。
- applicationContext.xml配置问题 求救各位大侠
- Java族的高级问题交流
- 如何得到一个字符串的宽度(像素宽度)?
- TOMCAT中的TOMCAT ADMINISTRATOR为何不能用?
- 不好意思 请问Struts hibernate Spring三者是什么意思 有什么区别和相同,要都学吗?
- [请教]socket建立445端口连接后,怎么获取其文件列表,谢谢
- 难么?? 怎么实现Web页面的裁剪!!! 分不够再加!!!
- 我编好了一个EJB,我想用JSP去调用它,怎么办呢?很急的,谢谢
- java实现文件的读取并存入不同的数组中
- 大哥帮忙呀!救人一命胜造七级浮屠!
- struts动态表单验证!
//XML解析器接口
import org.w3c.dom.*;
//XML的DOM实现
import org.apache.crimson.tree.XmlDocument;
//写XML文件要用到DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//允许名字空间
factory.setNamespaceAware(true);
//允许验证
factory.setValidating(true);
//获得DocumentBuilder的一个实例
try {
DocumentBuilder builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
// 出异常时输出异常信息,然后退出,下同
System.exit(1);
}
//解析文档,并获得一个Document实例。
try {
Document doc = builder.parse(fileURI);
} catch (DOMException dom) {
System.err.println(dom.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
} //获得根节点StuInfo
Element elmtStuInfo = doc.getDocumentElement(); //得到所有student节点
NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS(
strNamespace, "student");
for (……){
//当前student节点元素
Element elmtStudent = (Element)nlStudent.item(i); NodeList nlCurrent = elmtStudent.getElementsByTagNameNS(
strNamespace, "name");
}
当然还要谢谢 livan1038(李枫)你的代码是否可以给的再完整一点,导入的org.apache.crimson.tree.XmlDocument
是什么东东,不是标准的JAVA API 我也没有这个JAR包
关于更多 你应该去看看教程 网上有很多此例供参考
package test;
/**
* <p>Title: xml解析</p>
* <p>Description:null </p>
* <p>Company: null</p>
* <p>date:07-8-23 11:05:24
* @author dajay
* @version 1.0
*/
import java.io.IOException;
import java.io.StringReader;
import java.util.Iterator;
import java.util.List;import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;public class JdomTest { public static final String xml = "<?xml version='1.0' encoding='utf-8'?>"+
"<content>"+
"<item>"+
"<title></title>"+
"<url>http://www.eaknow.com/</url>"+
"<image>image/flash1.jpg</image>"+
"</item>"+
"<item>"+
"<title></title>"+
"<url>http://www.eaknow.com/</url>"+
"<image>image/flash2.jpg</image>"+
"</item>"+
"<item>"+
"<title></title>"+
"<url>http://www.eaknow.com/</url>"+
"<image>image/flash3.jpg</image>"+
"</item>"+
"<item>"+
"<title></title>"+
"<url>http://www.eaknow.com/</url>"+
"<image>image/flash4.jpg</image>"+
"</item>"+
"<item>"+
"<title></title>"+
"<url>http://www.eaknow.com/</url>"+
"<image>image/flash5.jpg</image>"+
"</item>"+
"</content>";
public static void main(String args[]) throws JDOMException, IOException{
/**
* 新建解析器
*/
SAXBuilder builder = new SAXBuilder();
/**
* 新建文档对象
*/
Document document = builder.build(new StringReader(xml));
/**
* 获取跟元素
*/
Element elem = document.getRootElement();
/**
* 遍历根元素
*/
List content = elem.getChildren();
for(Iterator it = content.iterator();it.hasNext();){
Element item = (Element) it.next();
for(Iterator it_item = item.getChildren().iterator();it_item.hasNext();){
Element title = (Element) it_item.next();
Element url = (Element) it_item.next();
Element image = (Element) it_item.next();
System.out.println("title:" + title.getText() + "\n" +
"url:" + url.getText() + "\n" +
"image:" + image.getText() + "\n");
/**
* 修改元素
*/
title.setText("test_title");
url.setText("localhost");
image.setText("mm");
}
}
/**
* 输出到控制台
*/
/**
* 用于输入的对象
*/
XMLOutputter out = new XMLOutputter();
/**
* 格式化document的对象
*/
Format format = Format.getCompactFormat();
format.setIndent(" ");
out.setFormat(format);
System.out.println("\n\n修改后:");
/**
* 输出到控制台
*/
out.output(elem, System.out);
}
}
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.NodeList;
import org.w3c.dom.Document;public class readxml {
public static void main(String arg[]){
File file=new File("src/xml/NewFile.xml");
Document doc=null;
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(file);
} catch (IOException ioe) {
System.out.println("can not find the xml");
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println(doc); NodeList messages = doc.getElementsByTagName("MESSAGE"); for (int i = 0; i < messages.getLength(); i++) {
int message_id = 14;
message_id = message_id + i;
System.out.println("MESSAGE_ID:" + message_id);
String conf_num = doc.getElementsByTagName("CONF_NUM").item(i)
.getFirstChild().getNodeValue();
System.out.println("CONF_NUM:" + conf_num);
String message_time = doc.getElementsByTagName("MESSAGE_TIME")
.item(i).getFirstChild().getNodeValue();
System.out.println("MESSAGE_TIME:" + message_time);
String message_from = doc.getElementsByTagName("MESSAGE_FROM")
.item(i).getFirstChild().getNodeValue();
System.out.println("MESSAGE_FROM:" + message_from);
String messgae_to = doc.getElementsByTagName("MESSAGE_TO").item(i)
.getFirstChild().getNodeValue();
System.out.println("MESSAGE_TO:" + messgae_to);
String message_subject = doc
.getElementsByTagName("MESSAGE_SUBJECT").item(i)
.getFirstChild().getNodeValue();
System.out.println("MESSAGE_SUBJECT:" + message_subject);
String message_encoding = doc.getElementsByTagName(
"MESSAGE_ENCODING").item(i).getFirstChild().getNodeValue();
System.out.println("MESSAGE_ENCODING:" + message_encoding);
String message_flag = doc.getElementsByTagName("MESSAGE_FLAG")
.item(i).getFirstChild().getNodeValue();
System.out.println("MESSAGE_FLAG:" + message_flag);
String message_status = doc.getElementsByTagName("MESSAGE_STATUS")
.item(i).getFirstChild().getNodeValue();
System.out.println("MESSAGE_STATUS:" + message_status);
String network_id = doc.getElementsByTagName("NETWORK_ID").item(i)
.getFirstChild().getNodeValue();
System.out.println("NETWORK_ID:" + network_id);
String message_direction = doc.getElementsByTagName(
"MESSAGE_DIRECTION").item(i).getFirstChild().getNodeValue();
System.out.println("MESSAGE_DIRECTION:" + message_direction);
String result = doc.getElementsByTagName("RESULT").item(i)
.getFirstChild().getNodeValue();
System.out.println("RESULT:" + result);
String extend_desc = doc.getElementsByTagName("EXTEND_DESC")
.item(i).getFirstChild().getNodeValue();
System.out.println("EXTEND_DESC:" + extend_desc);
System.out.println("*****************");
}
}}
NewFile.xml文件内容<?xml version="1.0" encoding="UTF-8"?>
<RETRIEVEMESSAGES> <MESSAGE MESSAGE_ID="14">
<CONF_NUM>200000014</CONF_NUM>
<MESSAGE_TIME>2005/03/22 19:06:39</MESSAGE_TIME>
<MESSAGE_FROM>test1</MESSAGE_FROM>
<MESSAGE_TO>sc1</MESSAGE_TO>
<MESSAGE_SUBJECT>test to sc1</MESSAGE_SUBJECT>
<MESSAGE_ENCODING>ASCII</MESSAGE_ENCODING>
<MESSAGE_FLAG>READ</MESSAGE_FLAG>
<MESSAGE_STATUS>Delivered</MESSAGE_STATUS>
<NETWORK_ID>3</NETWORK_ID>
<MESSAGE_DIRECTION>Mobile Terminated</MESSAGE_DIRECTION>
<RESULT>1</RESULT>
<EXTEND_DESC>Success</EXTEND_DESC>
</MESSAGE>
<MESSAGE MESSAGE_ID="15">
<CONF_NUM>200000015</CONF_NUM>
<MESSAGE_TIME>2005/03/23 18:26:21</MESSAGE_TIME>
<MESSAGE_FROM>test1</MESSAGE_FROM>
<MESSAGE_TO>sc2</MESSAGE_TO>
<MESSAGE_SUBJECT>test to sc2</MESSAGE_SUBJECT>
<MESSAGE_ENCODING>ASCII</MESSAGE_ENCODING>
<MESSAGE_FLAG>READ</MESSAGE_FLAG>
<MESSAGE_STATUS>Delivered</MESSAGE_STATUS>
<NETWORK_ID>3</NETWORK_ID>
<MESSAGE_DIRECTION>Mobile Terminated</MESSAGE_DIRECTION>
<RESULT>1</RESULT>
<EXTEND_DESC>Success</EXTEND_DESC>
</MESSAGE>
</RETRIEVEMESSAGES>
NewFile.xml文件放在了 src/xml/下了
List images = new ArrayList();List elements = doc.selectNodes("//*[@url]|[@image]") //取出所有的 url 和 image
for(Iterator iter = elements.iterator();;iter.hasNext()) //循环所有节点
{
Element element = (Element)iter.next();
if(element.getName().equals("url"))
{
urls.add(element.getTextTrim());
}else if(element.getName().equals("image")){
images.add(element.getTextTrim());
}
} 完成 呵呵 其它东西 自己写了