请高手帮忙解答关于DOM解析XML的问题!!! 怎么用DOM去解析XML的内容然后把内容以TXT的文件形式导出来... 帮帮忙啊。。小弟感激 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (*^__^*) 嘻嘻……,这个不会用俺只会用jdom的 我有个例子,可以参考下。解释起来太麻烦了导包:import javax.xml.parsers.*;import org.w3c.dom.*;import java.util.*;import javax.xml.transform.*;import javax.xml.transform.stream.*;import javax.xml.transform.dom.*;import java.io.*;方法:public List<Employee> getAllEmployees()throws Exception{ [align=left]Document doc=DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("employee.xml"); Element root=doc.getDocumentElement(); NodeList nl=root.getChildNodes(); List<Employee> list=new ArrayList<Employee>(); for(int i=0;i<nl.getLength();i++){ if(!(nl.item(i) instanceof Text)){ Employee employee=new Employee(); Element emp=(Element)nl.item(i); System.out.println(emp.getNodeName()); employee.setId(emp.getAttribute("id")); employee.setSex(emp.getAttribute("sex")); employee.setName(((Element)emp.getElementsByTagName("name").item(0)).getTextContent()); employee.setTel(((Element)emp.getElementsByTagName("tel").item(0)).getTextContent()); employee.setSalary(((Element)emp.getElementsByTagName("salary").item(0)).getTextContent()); employee.setEmail(((Element)emp.getElementsByTagName("email").item(0)).getTextContent()); list.add(employee); } } return list; }XML文件:<?xml version="1.0" encoding="UTF-8"?><company> <employee id="et0901" sex="男"> <name>admin</name> <tel>1381444623</tel> <salary>2000</salary> <email>[email protected]</email> </employee> <employee id="et0902" sex="男"> <name>Tom</name> <tel>137981444623</tel> <salary>1000</salary> <email>[email protected]</email> </employee></company> 类Employee:private String id; private String sex; private String name; private String tel; private String salary; private String email; public Employee(){} public Employee(String id,String sex,String name,String tel,String salary,String email){ this.id=id; this.sex=sex; this.name=name; this.tel=tel; this.salary=salary; this.email=email; }这个方法返回的是个Employee 的集合,LZ可以借鉴下,然后转成IO流.具体的解析步骤我就不说了,刚好这两天学到解析XML了,手头上有我写的代码.希望对你有帮助. 呵呵,我用过xml,可是没导过... DOM4j解析: File file = new File("data.xml"); SAXReader read = new SAXReader(); Document doc = read.read(file);//doc和read的dom4j里的类实例 //通过doc可以获取该xml文件的root,下面的一些数据获取操作自己点一下就知道了... 其实还是推荐使用dom4j,直接用dom有些繁琐/一下就是代码. import java.io.*; import java.util.*; import org.w3c.dom.*; import javax.xml.parsers.*; public class MyXMLReader_DOM{ public static void main(String arge[]){ try{ File f=new File("aa.xml"); DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document doc = builder.parse(f); NodeList nl = doc.getElementsByTagName("VALUE"); for (int i=0;i<nl.getLength();i++){ System.out.print("车牌号码:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue()); System.out.println(" 车主地址:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue()); } }catch(Exception e){e.printStackTrace();} //System.out.println("运行时间:"+(System.currentTimeMillis() - lasting)+" 毫秒"); } } 一下是上面代码读的xml <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <ADDR>四川省XX县XX镇XX路X段XX号</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>四川省XX市XX乡XX村XX组</ADDR> </VALUE> </RESULT> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><SCRIPT language="javascript" type="text/javascript">function clickbtn() { alert(document.getElementById("txt_name").value); }</SCRIPT><BODY><INPUT type="text" id="txt_name" value="我是一个textbox"><INPUT type="submit" id="btn_submit" value="click me" onclick="clickbtn()"></BODY></HTML>简单的初学者的例子,我自己做的。很基础,根据你的题目不知道你想要什么样的。 spring构造函数注入问题 java中有没有ref 求高手指点如何学servlet! 用hibernateTemplate怎么样根据传入id删除记录?? 设计模式书本 怎么老是报文档非法异常 如何在java中用sax实现两个xml的合并 全国什么地方j2ee培训最权威,效果最好?百分请教 求求大家帮帮我 c/s的网络用户登陆 的 东东 我的jb中的光标定位不准,到tools中的那项去修改? 异常 移动业务的题,求大家帮助下 谢谢
导包:
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.util.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import java.io.*;
方法:
public List<Employee> getAllEmployees()throws Exception{
[align=left]Document doc=DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("employee.xml");
Element root=doc.getDocumentElement();
NodeList nl=root.getChildNodes();
List<Employee> list=new ArrayList<Employee>(); for(int i=0;i<nl.getLength();i++){
if(!(nl.item(i) instanceof Text)){
Employee employee=new Employee();
Element emp=(Element)nl.item(i);
System.out.println(emp.getNodeName());
employee.setId(emp.getAttribute("id"));
employee.setSex(emp.getAttribute("sex"));
employee.setName(((Element)emp.getElementsByTagName("name").item(0)).getTextContent());
employee.setTel(((Element)emp.getElementsByTagName("tel").item(0)).getTextContent());
employee.setSalary(((Element)emp.getElementsByTagName("salary").item(0)).getTextContent());
employee.setEmail(((Element)emp.getElementsByTagName("email").item(0)).getTextContent());
list.add(employee);
}
}
return list;
}XML文件:
<?xml version="1.0" encoding="UTF-8"?><company>
<employee id="et0901" sex="男">
<name>admin</name>
<tel>1381444623</tel>
<salary>2000</salary>
<email>[email protected]</email>
</employee>
<employee id="et0902" sex="男">
<name>Tom</name>
<tel>137981444623</tel>
<salary>1000</salary>
<email>[email protected]</email>
</employee>
</company>
private String id;
private String sex;
private String name;
private String tel;
private String salary;
private String email;
public Employee(){}
public Employee(String id,String sex,String name,String tel,String salary,String email){
this.id=id;
this.sex=sex;
this.name=name;
this.tel=tel;
this.salary=salary;
this.email=email;
}这个方法返回的是个Employee 的集合,LZ可以借鉴下,然后转成IO流.
具体的解析步骤我就不说了,刚好这两天学到解析XML了,手头上有我写的代码.
希望对你有帮助.
File file = new File("data.xml");
SAXReader read = new SAXReader();
Document doc = read.read(file);//doc和read的dom4j里的类实例
//通过doc可以获取该xml文件的root,下面的一些数据获取操作自己点一下就知道了...
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class MyXMLReader_DOM{
public static void main(String arge[]){
try{
File f=new File("aa.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("VALUE");
for (int i=0;i<nl.getLength();i++){
System.out.print("车牌号码:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
System.out.println(" 车主地址:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
}
}catch(Exception e){e.printStackTrace();}
//System.out.println("运行时间:"+(System.currentTimeMillis() - lasting)+" 毫秒");
}
} 一下是上面代码读的xml <?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
<ADDR>四川省XX县XX镇XX路X段XX号</ADDR>
</VALUE>
<VALUE>
<NO>B1234</NO>
<ADDR>四川省XX市XX乡XX村XX组</ADDR>
</VALUE>
</RESULT>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<SCRIPT language="javascript" type="text/javascript">
function clickbtn()
{
alert(document.getElementById("txt_name").value);
}
</SCRIPT>
<BODY>
<INPUT type="text" id="txt_name" value="我是一个textbox">
<INPUT type="submit" id="btn_submit" value="click me" onclick="clickbtn()">
</BODY>
</HTML>
简单的初学者的例子,我自己做的。很基础,根据你的题目不知道你想要什么样的。