当前位置:编程学习 > JAVA >>

xml

xml的使用,怎么才能把xml读取出来,谢谢 --------------------编程问答--------------------

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;

public class ReadXMLFileDOM {

public static void main(String argv[]) {

try {

File fXmlFile = new File("c:\\file.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();

System.out.println("Root element :"
+ doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("staff");
System.out.println("-----------------------");

for (int temp = 0; temp < nList.getLength(); temp++) {

Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {

Element eElement = (Element) nNode;

System.out.println("First Name : "
+ getTagValue("firstname", eElement));
System.out.println("Last Name : "
+ getTagValue("lastname", eElement));
System.out.println("Nick Name : "
+ getTagValue("nickname", eElement));
System.out.println("Salary : "
+ getTagValue("salary", eElement));

}
}
} catch (Exception e) {
e.printStackTrace();
}
}

private static String getTagValue(String sTag, Element eElement) {
NodeList nlList = eElement.getElementsByTagName(sTag).item(0)
.getChildNodes();
Node nValue = (Node) nlList.item(0);

return nValue.getNodeValue();
}

}

给分吧,可以运行的
--------------------编程问答-------------------- dom4j 

现在好多开源的包。。。。 --------------------编程问答-------------------- 1楼不错,2楼也不错 --------------------编程问答-------------------- 关于xml解析一般有DOM SAX  JDOM DOM4J 几种方式、、、

import java.io.File;
import java.io.IOException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;

import javax.xml.parsers.*;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

public class DomTest {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new File("F:"+File.separator+"易做图ysis.xml"));
NodeList nl = doc.getElementsByTagName("linkman");
for(int i = 0;i<nl.getLength();i++){
Element e = (Element)nl.item(i);
System.out.println("姓名:"+e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
System.out.println("联系方式:"+e.getElementsByTagName("tel").item(0).getFirstChild().getNodeValue());
}

//DOM对xml文件进行读取操作
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING, "GBK");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("F:"+File.separator+"DOMTest.xml"));
t.transform(source,result);
}
}


import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class ReaderJDOM {
public static void main(String[] args) throws JDOMException, IOException{
SAXBuilder builder = new SAXBuilder();
Document read_doc = builder.build(new File("F:"+File.separator+"易做图ysis.xml"));
Element root = read_doc.getRootElement();//取得根
List list = root.getChildren("linkman");//得到linkman下的子节点
for(int i = 0;i<list.size();i++){
Element e = (Element)list.get(i);
String name = e.getChildText("name");
// String id = e.getChild("name").getAttribute("id").getValue();
String tel = e.getChildText("tel");
System.out.println("----------联系人-----------");
System.out.println("姓名:"+name);
System.out.println("tel:"+tel);
System.out.println("=========================");
System.out.println();


}
}
}

import java.io.*;
import java.util.*;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class readerDOM4J {
public static void main(String[] args) throws DocumentException{
File file = new File("F:"+File.separator+"易做图ysis.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);//读取xml文件
Element root = doc.getRootElement();//取得根节点
Iterator iter = root.elementIterator();//获得linkman下的子节点
while(iter.hasNext()){
Element linkman = (Element)iter.next();
System.out.println("姓名:"+linkman.elementText("name"));
System.out.println("联系方式:"+linkman.elementText("tel"));

}
}
}

<?xml version="1.0" encoding="GBK" standalone="no"?><addressList>
<linkman>
<name>Tom</name>
<tel>13688888888</tel>
</linkman>
<linkman>
<name>Jess</name>
<tel>13699999999</tel>
</linkman>

</addressList>


举了个小例子、、、呵呵 --------------------编程问答-------------------- dom/sax --------------------编程问答-------------------- 你们是否用过 jaxb这个也很不错,很强大,我反正没用过 --------------------编程问答--------------------
引用 4 楼 sydhappy 的回复:
关于xml解析一般有DOM SAX JDOM DOM4J 几种方式、、、

Java code

import java.io.File;
import java.io.IOException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;

import javax.xml.parsers.*;
import j……

这个回复的很好。很全面。
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,