dom.jar包那里有下的啊! rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用下,开发环境自带。下面是一下用dom解析xml的方法:Message.xml:<?xml version="1.0" encoding="GB2312"?><PeopleMessages> <message> <id>001</id> <Parentid>1</Parentid> <Fullname>张正明</Fullname> <address> <id>011</id> <Parentid>001</Parentid> <city>武汉</city> <country>中国</country> </address> </message> <message> <id>002</id> <Parentid>1</Parentid> <Fullname>刘德华</Fullname> <address> <id>012</id> <Parentid>002</Parentid> <city>香港</city> <country>中国</country> </address> </message> <message> <id>003</id> <Parentid>1</Parentid> <Fullname>张三丰</Fullname> <address> <id>013</id> <Parentid>003</Parentid> <city>不详</city> <country>中国</country> </address> </message> <message> <id>004</id> <Parentid>1</Parentid> <Fullname>Dav</Fullname> <address> <id>014</id> <Parentid>004</Parentid> <city>Washington</city> <country>America</country> </address> </message> <message> <id>005</id> <Parentid>1</Parentid> <Fullname>敏锐</Fullname> <address> <id>015</id> <Parentid>005</Parentid> <city>北京</city> <country>中国</country> </address> </message></PeopleMessages>代码:package com;import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Node;public class ReadXml {public ReadXml(){}public void myRXML(){ String fileName ="D:\\project\\myserver\\WebRoot\\Message.xml"; File XmlFile=new File(fileName); DocumentBuilderFactory df=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=null; Document doc=null; try { builder=df.newDocumentBuilder(); doc=builder.parse(XmlFile); ReadNode(doc); } catch (Exception e) { e.printStackTrace(); }}public void ReadNode(Node myNode){ for(int i=0;i<myNode.getChildNodes().getLength();i++){ System.out.println("写入:"+myNode.getChildNodes().item(i).getNodeName()); ReadNode(myNode.getChildNodes().item(i)); }}public static void main(String[] args){ ReadXml rxml=new ReadXml(); rxml.myRXML();}} 再给一个把XML数据封装二维数组的代码:Message.xml:<?xml version="1.0" encoding="GB2312"?><PeopleMessages> <message> <Peopleid>001</Peopleid> <Parentid>1</Parentid> <Fullname>张正明</Fullname> <address> <addressid>011</addressid> <Parentid>001</Parentid> <city>武汉</city> <country>中国</country> </address> </message> <message> <Peopleid>002</Peopleid> <Parentid>1</Parentid> <Fullname>刘德华</Fullname> <address> <addressid>012</addressid> <Parentid>002</Parentid> <city>香港</city> <country>中国</country> </address> </message> <message> <Peopleid>003</Peopleid> <Parentid>1</Parentid> <Fullname>张三丰</Fullname> <address> <addressid>013</addressid> <Parentid>003</Parentid> <city>不详</city> <country>中国</country> </address> </message> <message> <Peopleid>004</Peopleid> <Parentid>1</Parentid> <Fullname>Dav</Fullname> <address> <addressid>014</addressid> <Parentid>004</Parentid> <city>Washington</city> <country>America</country> </address> </message> <message> <Peopleid>005</Peopleid> <Parentid>1</Parentid> <Fullname>敏锐</Fullname> <address> <addressid>015</addressid> <Parentid>005</Parentid> <city>北京</city> <country>中国</country> </address> </message></PeopleMessages>ReadXml.java:package com;import java.io.File;import java.util.ArrayList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Node;public class ReadXml {public ReadXml(){}public void myRXML(){ String fileName ="D:\\project\\myserver\\WebRoot\\Message.xml"; File XmlFile=new File(fileName); DocumentBuilderFactory df=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=null; Document doc=null; try { builder=df.newDocumentBuilder(); doc=builder.parse(XmlFile); } catch (Exception e) { e.printStackTrace(); } ArrayList<String[]> myRXMLStr=new ArrayList<String[]>(); ReadNode(doc,myRXMLStr); //输出到客户端,数据转换成数组 int rcount=myRXMLStr.size(); int ccount=myRXMLStr.get(0).length; String OutXmlData[][]=new String[rcount][ccount]; for(int i=0;i<myRXMLStr.size();i++){ for (int j=0;j<8;j++){ String strXML=((String[])(myRXMLStr.get(i)))[j]; OutXmlData[i][j]=strXML; } } //打印显示 for(int i=0;i<rcount;i++){ for(int j=0;j<ccount;j++){ System.out.print(OutXmlData[i][j]+" "); } System.out.println(); } }public void ReadNode(Node myNode,ArrayList<String[]> RXml){ String[] RXmlStr= new String[8]; for(int i=0;i<myNode.getChildNodes().getLength();i++){ if (myNode.getChildNodes().item(i).getNodeName()=="Peopleid"){ RXmlStr[0]=myNode.getChildNodes().item(i).getNodeName(); RXmlStr[1]=myNode.getChildNodes().item(i).getChildNodes().item(0).getNodeValue(); RXmlStr[2]=myNode.getChildNodes().item(i+2).getNodeName(); RXmlStr[3]=myNode.getChildNodes().item(i+2).getChildNodes().item(0).getNodeValue(); RXmlStr[4]=myNode.getChildNodes().item(i+4).getNodeName(); RXmlStr[5]=myNode.getChildNodes().item(i+4).getChildNodes().item(0).getNodeValue(); RXmlStr[6]=""; RXmlStr[7]=""; RXml.add(RXmlStr); } if (myNode.getChildNodes().item(i).getNodeName()=="addressid"){ RXmlStr[0]=myNode.getChildNodes().item(i).getNodeName(); RXmlStr[1]=myNode.getChildNodes().item(i).getChildNodes().item(0).getNodeValue(); RXmlStr[2]=myNode.getChildNodes().item(i+2).getNodeName(); RXmlStr[3]=myNode.getChildNodes().item(i+2).getChildNodes().item(0).getNodeValue(); RXmlStr[4]=myNode.getChildNodes().item(i+4).getNodeName(); RXmlStr[5]=myNode.getChildNodes().item(i+4).getChildNodes().item(0).getNodeValue(); RXmlStr[6]=myNode.getChildNodes().item(i+6).getNodeName(); RXmlStr[7]=myNode.getChildNodes().item(i+6).getChildNodes().item(0).getNodeValue(); RXml.add(RXmlStr); } ReadNode(myNode.getChildNodes().item(i),RXml); }}public static void main(String[] args){ ReadXml rxml=new ReadXml(); rxml.myRXML();}} 请教关于监听键盘字符的小问题 如何按字符串数组里的元素不同依次输出 file.listFiles()内存溢出如何解决? java代码如何中延时 打印开始日期 结束日期间的所有日期,但有问题,麻烦帮解决下 java中的数字计算误差机制 JRE无法使用 关于克隆(急急急) readObject()问题 消除编译时的警告? Java初级问题..关于switch case 的.请进... JDK路径问题??/
下面是一下用dom解析xml的方法:
Message.xml:
<?xml version="1.0" encoding="GB2312"?><PeopleMessages>
<message>
<id>001</id>
<Parentid>1</Parentid>
<Fullname>张正明</Fullname>
<address>
<id>011</id>
<Parentid>001</Parentid>
<city>武汉</city>
<country>中国</country>
</address>
</message>
<message>
<id>002</id>
<Parentid>1</Parentid>
<Fullname>刘德华</Fullname>
<address>
<id>012</id>
<Parentid>002</Parentid>
<city>香港</city>
<country>中国</country>
</address>
</message>
<message>
<id>003</id>
<Parentid>1</Parentid>
<Fullname>张三丰</Fullname>
<address>
<id>013</id>
<Parentid>003</Parentid>
<city>不详</city>
<country>中国</country>
</address>
</message>
<message>
<id>004</id>
<Parentid>1</Parentid>
<Fullname>Dav</Fullname>
<address>
<id>014</id>
<Parentid>004</Parentid>
<city>Washington</city>
<country>America</country>
</address>
</message>
<message>
<id>005</id>
<Parentid>1</Parentid>
<Fullname>敏锐</Fullname>
<address>
<id>015</id>
<Parentid>005</Parentid>
<city>北京</city>
<country>中国</country>
</address>
</message>
</PeopleMessages>代码:
package com;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;public class ReadXml {
public ReadXml(){}public void myRXML(){
String fileName ="D:\\project\\myserver\\WebRoot\\Message.xml";
File XmlFile=new File(fileName);
DocumentBuilderFactory df=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=null;
Document doc=null;
try {
builder=df.newDocumentBuilder();
doc=builder.parse(XmlFile);
ReadNode(doc);
} catch (Exception e) {
e.printStackTrace();
}}
public void ReadNode(Node myNode){
for(int i=0;i<myNode.getChildNodes().getLength();i++){
System.out.println("写入:"+myNode.getChildNodes().item(i).getNodeName()); ReadNode(myNode.getChildNodes().item(i));
}
}public static void main(String[] args){
ReadXml rxml=new ReadXml();
rxml.myRXML();
}
}
Message.xml:
<?xml version="1.0" encoding="GB2312"?><PeopleMessages>
<message>
<Peopleid>001</Peopleid>
<Parentid>1</Parentid>
<Fullname>张正明</Fullname>
<address>
<addressid>011</addressid>
<Parentid>001</Parentid>
<city>武汉</city>
<country>中国</country>
</address>
</message>
<message>
<Peopleid>002</Peopleid>
<Parentid>1</Parentid>
<Fullname>刘德华</Fullname>
<address>
<addressid>012</addressid>
<Parentid>002</Parentid>
<city>香港</city>
<country>中国</country>
</address>
</message>
<message>
<Peopleid>003</Peopleid>
<Parentid>1</Parentid>
<Fullname>张三丰</Fullname>
<address>
<addressid>013</addressid>
<Parentid>003</Parentid>
<city>不详</city>
<country>中国</country>
</address>
</message>
<message>
<Peopleid>004</Peopleid>
<Parentid>1</Parentid>
<Fullname>Dav</Fullname>
<address>
<addressid>014</addressid>
<Parentid>004</Parentid>
<city>Washington</city>
<country>America</country>
</address>
</message>
<message>
<Peopleid>005</Peopleid>
<Parentid>1</Parentid>
<Fullname>敏锐</Fullname>
<address>
<addressid>015</addressid>
<Parentid>005</Parentid>
<city>北京</city>
<country>中国</country>
</address>
</message>
</PeopleMessages>ReadXml.java:package com;
import java.io.File;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;public class ReadXml {
public ReadXml(){}public void myRXML(){
String fileName ="D:\\project\\myserver\\WebRoot\\Message.xml";
File XmlFile=new File(fileName);
DocumentBuilderFactory df=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=null;
Document doc=null;
try {
builder=df.newDocumentBuilder();
doc=builder.parse(XmlFile);
} catch (Exception e) {
e.printStackTrace();
}
ArrayList<String[]> myRXMLStr=new ArrayList<String[]>();
ReadNode(doc,myRXMLStr);
//输出到客户端,数据转换成数组
int rcount=myRXMLStr.size();
int ccount=myRXMLStr.get(0).length;
String OutXmlData[][]=new String[rcount][ccount];
for(int i=0;i<myRXMLStr.size();i++){
for (int j=0;j<8;j++){
String strXML=((String[])(myRXMLStr.get(i)))[j];
OutXmlData[i][j]=strXML;
}
}
//打印显示
for(int i=0;i<rcount;i++){
for(int j=0;j<ccount;j++){
System.out.print(OutXmlData[i][j]+" ");
}
System.out.println();
}
}
public void ReadNode(Node myNode,ArrayList<String[]> RXml){
String[] RXmlStr= new String[8];
for(int i=0;i<myNode.getChildNodes().getLength();i++){
if (myNode.getChildNodes().item(i).getNodeName()=="Peopleid"){
RXmlStr[0]=myNode.getChildNodes().item(i).getNodeName();
RXmlStr[1]=myNode.getChildNodes().item(i).getChildNodes().item(0).getNodeValue();
RXmlStr[2]=myNode.getChildNodes().item(i+2).getNodeName();
RXmlStr[3]=myNode.getChildNodes().item(i+2).getChildNodes().item(0).getNodeValue();
RXmlStr[4]=myNode.getChildNodes().item(i+4).getNodeName();
RXmlStr[5]=myNode.getChildNodes().item(i+4).getChildNodes().item(0).getNodeValue();
RXmlStr[6]="";
RXmlStr[7]="";
RXml.add(RXmlStr);
}
if (myNode.getChildNodes().item(i).getNodeName()=="addressid"){
RXmlStr[0]=myNode.getChildNodes().item(i).getNodeName();
RXmlStr[1]=myNode.getChildNodes().item(i).getChildNodes().item(0).getNodeValue();
RXmlStr[2]=myNode.getChildNodes().item(i+2).getNodeName();
RXmlStr[3]=myNode.getChildNodes().item(i+2).getChildNodes().item(0).getNodeValue();
RXmlStr[4]=myNode.getChildNodes().item(i+4).getNodeName();
RXmlStr[5]=myNode.getChildNodes().item(i+4).getChildNodes().item(0).getNodeValue();
RXmlStr[6]=myNode.getChildNodes().item(i+6).getNodeName();
RXmlStr[7]=myNode.getChildNodes().item(i+6).getChildNodes().item(0).getNodeValue();
RXml.add(RXmlStr);
}
ReadNode(myNode.getChildNodes().item(i),RXml);
}
}public static void main(String[] args){
ReadXml rxml=new ReadXml();
rxml.myRXML();
}
}