怎样读取一个xml文件并显示在jTable中 哪位前辈能给一个详细点的代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把xml解析成二维数组调用JTable(Object[][] rowData, Object[] columnNames) 这个 先用dom4j 解析,然后找到 jtable相应的构造方法 楼主 可以自己试试 。 先解析xml文件,把对应的数据放在list里,在放表table中. package jaxml; import java.io.*; import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.xml.sax.SAXException; /** * let's support linux * @author [email protected] */ public class xmlfile{ private Document document; private String filename; public xmlfile(String name) throws ParserConfigurationException{ filename=name; DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); File file=new File(name); if(file.exists()){ try { document=builder.parse(name); } catch (SAXException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } }else{ document=builder.newDocument(); toWrite("中文题目","中文内容"); toSave(); } } public void toWrite(String mytitle,String mycontent){ Element root=document.createElement("WorkShop"); document.appendChild(root); Element title=document.createElement("Title"); title.appendChild(document.createTextNode(mytitle)); root.appendChild(title); Element content=document.createElement("Content"); content.appendChild(document.createTextNode(mycontent)); root.appendChild(content); } public String readNode(String nodename){ Node node=document.getElementsByTagName(nodename).item(0); return node.getTextContent(); } public String readAttribute(String nodename,String itemname){ Node node=document.getElementsByTagName(nodename).item(0); return node.getAttributes().getNamedItem(itemname).getTextContent(); } public String parseString(String str,String nodename,String itemname){ DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder dber; try { dber = factory.newDocumentBuilder(); str="<xroot"+str+"</xroot"; ByteArrayInputStream bais = null; try { bais = new ByteArrayInputStream(str.getBytes("UTF-8")); Document docf; try { docf = dber.parse(bais); Node node=docf.getElementsByTagName(nodename).item(0); return node.getAttributes().getNamedItem(itemname).getTextContent(); } catch (IOException ex) { ex.printStackTrace(); } catch (SAXException ex) { ex.printStackTrace(); } } catch (UnsupportedEncodingException uee) { uee.printStackTrace(); } } catch (ParserConfigurationException ex) { ex.printStackTrace(); } return ""; } public void toSave(){ try{ TransformerFactory tf=TransformerFactory.newInstance(); Transformer transformer=tf.newTransformer(); DOMSource source=new DOMSource(document); transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312"); transformer.setOutputProperty(OutputKeys.INDENT,"yes"); PrintWriter pw=new PrintWriter(new FileOutputStream(filename)); StreamResult result=new StreamResult(pw); transformer.transform(source,result); } catch(TransformerException mye){ mye.printStackTrace(); } catch(IOException exp){ exp.printStackTrace(); } } } 示例: xmlfile xf=new xmlfile("./9.xml"); jval.setText(xf.parseString("<response code=\"000\" message=\"XXX\"/","response","code")); java写XML文件和读取XML文件 使用DOM方式,Java解析XML基本步骤: 首先,我们需要建立一个解析器工厂。 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); 然后可以利用这个工厂来获得一个具体的解析对象。 DocumentBuilder builder=dbf.newDocumentBuilder(); DocumentBuilder的Parse()方法接受一个XML文档名作为输入参数,返回一个Document对象。Document对象代表了 一个XML文档的树模型。 Document doc=builder.parse("candiate.xml"); 使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,他是XML文档中的标签元素 列表,可以使用NodeList对象的item()方法来得列表中的每一个Node对象。 NodeList nl=doc.getElementsByTagName("PERSON"); Element node=(Element)nl.item(i); 最后,我们会使用Node对象的getNodeValue()方法提取某个标签内的内容。 node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue() 完整程序代码: import javax.xml.parsers.*; import org.w3c.dom.*; public class dom { public static void main(String args[]){ String uri=args[0]; try{ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//建立一个解析器工厂。 DocumentBuilder builder=factory.newDocumentBuilder();//获得一个具体的解析对象。 Document doc=builder.parse(uri);//返回一个Document对象。 System.out.println(doc.getImplementation()); NodeList nl =doc.getElementsByTagName("PERSON");//得到一个NodeList对象。 for (int i=0;i<nl.getLength();i++){ Element node=(Element) nl.item(i);//得列表中的每一个Node对象。 System.out.print("NAME: "); System.out.println (node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue()); System.out.print("ADDRESS: "); System.out.println (node.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue()); System.out.print("TEL: "); System.out.println (node.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue()); System.out.print("FAX: "); System.out.println (node.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue()); System.out.print("EMAIL: "); System.out.println (node.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue()); System.out.println(); } }catch(Exception e){ e.printStackTrace(); } } }自己下载jdom的jar包。程序把xml文件转换为dom结构放入内存,这时可以把dom结构循环遍历每个节点数值,并用对象或object[]保存,返回到页面遍历并放入jtable中 java中关于对话框的问题 关于java里的 转义字符与单引号的问题,求救! 文件上传的问题 请问怎样使对话框保持在前面? 请问高手,是否能用java应用程序同时打印条码和读取电子称数据,请教,很急 请问jre自动下载的配置文件jinstall*.ini文件在哪里可以找得到???请高手指点 包的问题 请帮忙编写一下程序,给分!!! 文件操作,高手快来!!!在线等!!! 大家看看我写的Filter代码, jsp页面上显示QQ表情 生产消费者问题,JAVA代码有几句不是特别理解。
调用JTable(Object[][] rowData, Object[] columnNames)
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.SAXException;
/**
* let's support linux
* @author [email protected]
*/
public class xmlfile{
private Document document;
private String filename;
public xmlfile(String name) throws
ParserConfigurationException{
filename=name;
DocumentBuilderFactory
factory=DocumentBuilderFactory.newInstance();
DocumentBuilder
builder=factory.newDocumentBuilder();
File file=new File(name);
if(file.exists()){
try {
document=builder.parse(name);
} catch (SAXException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}else{
document=builder.newDocument();
toWrite("中文题目","中文内容");
toSave();
}
}
public void toWrite(String mytitle,String mycontent){
Element root=document.createElement("WorkShop");
document.appendChild(root);
Element title=document.createElement("Title");
title.appendChild(document.createTextNode(mytitle));
root.appendChild(title);
Element content=document.createElement("Content");
content.appendChild(document.createTextNode(mycontent));
root.appendChild(content);
}
public String readNode(String nodename){
Node
node=document.getElementsByTagName(nodename).item(0);
return node.getTextContent();
}
public String readAttribute(String nodename,String
itemname){
Node
node=document.getElementsByTagName(nodename).item(0);
return
node.getAttributes().getNamedItem(itemname).getTextContent();
}
public String parseString(String str,String
nodename,String
itemname){
DocumentBuilderFactory
factory=DocumentBuilderFactory.newInstance();
DocumentBuilder dber;
try {
dber =
factory.newDocumentBuilder();
str="<xroot"+str+"</xroot";
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(str.getBytes("UTF-8"));
Document docf;
try {
docf =
dber.parse(bais);
Node
node=docf.getElementsByTagName(nodename).item(0);
return
node.getAttributes().getNamedItem(itemname).getTextContent();
} catch (IOException ex)
{
ex.printStackTrace();
} catch (SAXException
ex) {
ex.printStackTrace();
}
}
catch (UnsupportedEncodingException uee) {
uee.printStackTrace();
}
} catch (ParserConfigurationException ex) {
ex.printStackTrace();
}
return "";
}
public void toSave(){
try{
TransformerFactory
tf=TransformerFactory.newInstance();
Transformer transformer=tf.newTransformer();
DOMSource source=new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312");
transformer.setOutputProperty(OutputKeys.INDENT,"yes");
PrintWriter pw=new PrintWriter(new
FileOutputStream(filename));
StreamResult result=new StreamResult(pw);
transformer.transform(source,result);
} catch(TransformerException mye){
mye.printStackTrace();
} catch(IOException exp){
exp.printStackTrace();
}
}
}
示例:
xmlfile xf=new xmlfile("./9.xml");
jval.setText(xf.parseString("<response
code=\"000\"
message=\"XXX\"/","response","code"));
java写XML文件和读取XML文件
使用DOM方式,Java解析XML基本步骤:
首先,我们需要建立一个解析器工厂。
DocumentBuilderFactory
dbf=DocumentBuilderFactory.newInstance();
然后可以利用这个工厂来获得一个具体的解析对象。
DocumentBuilder builder=dbf.newDocumentBuilder();
DocumentBuilder的Parse()方法接受一个XML文档名作为输入参数,返回一个Document对象。Document对象代表了
一个XML文档的树模型。
Document doc=builder.parse("candiate.xml");
使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,他是XML文档中的标签元素
列表,可以使用NodeList对象的item()方法来得列表中的每一个Node对象。
NodeList nl=doc.getElementsByTagName("PERSON");
Element node=(Element)nl.item(i);
最后,我们会使用Node对象的getNodeValue()方法提取某个标签内的内容。
node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue()
完整程序代码:
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class dom {
public static void main(String args[]){
String uri=args[0];
try{
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();//建立一个解析器工厂。
DocumentBuilder
builder=factory.newDocumentBuilder();//获得一个具体的解析对象。
Document
doc=builder.parse(uri);//返回一个Document对象。
System.out.println(doc.getImplementation());
NodeList nl
=doc.getElementsByTagName("PERSON");//得到一个NodeList对象。
for (int i=0;i<nl.getLength();i++){
Element node=(Element)
nl.item(i);//得列表中的每一个Node对象。
System.out.print("NAME: ");
System.out.println
(node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue());
System.out.print("ADDRESS: ");
System.out.println
(node.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue());
System.out.print("TEL: ");
System.out.println
(node.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue());
System.out.print("FAX: ");
System.out.println
(node.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue());
System.out.print("EMAIL: ");
System.out.println
(node.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue());
System.out.println();
}
}catch(Exception e){
e.printStackTrace();
}
}
}自己下载jdom的jar包。
程序把xml文件转换为dom结构放入内存,这时可以把dom结构循环遍历每个节点数值,并用对象或object[]保存,返回到页面遍历并放入jtable中