本文目錄一覽:
JAVA 讀取XML文件
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XmlTester {
public static void main(String[] args) throws DocumentException {
// 使用了dom4j解析xml
// 讀取目錄下用來測試的test.xml文件,取得xml主內容
Document document = new SAXReader().read(“src/abc/test.xml”).getDocument();
int i = 1;
// 遍歷文檔根節點(wuxialist)下的子節點列表,即txtbook節點的集合
for(Element txtbook : (ListElement)document.getRootElement().elements()){
//取得txtbook節點下的name節點的內容
System.out.println(i+”.”+txtbook.element(“name”).getText());
i++; //原來這裡少些了這一行,先補上
}
}
}
Java xml遍歷
你沒說清楚運行是到底會發生什麼錯誤,因為解析XML這玩意和XML本身的格式有關,你應該把XML也給出。我只能假設你的XML是這種形式:
?xml version=”1.0″ encoding=”UTF-8″ ?
root
filems name=”a1″ Englishname=”a2″ direct=”a3″ actor=”a4″ type=”a5″
price=”a6″ time=”a7″ /
filems name=”b1″ Englishname=”b2″ direct=”b3″ actor=”b4″ type=”b5″
price=”b6″ time=”b7″ /
/root
這樣運行你的代碼會報NulPointerExceptoin,應該把Element e = (Element) list.item(i).getChildNodes().item(i);
去掉,你的代碼需要改成這樣子:
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class Filem {
public static void main(final String[] args) throws Exception {
show();
}
public static void show() throws Exception {
final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
final DocumentBuilder db = dbf.newDocumentBuilder();
final Document doc = db.parse(“FilemMessage.xml”);
final NodeList list = doc.getElementsByTagName(“filems”);
final List l = new ArrayList();
final int length = list.getLength();
for (int i = 0; i length; i++) {
final Element e = (Element) list.item(i);
if (e == null) {
break;
}
final String name = e.getAttribute(“name”);
final String Englishname = e.getAttribute(“Englishname”);
final String direct = e.getAttribute(“direct”);
final String actor = e.getAttribute(“actor”);
final String type = e.getAttribute(“type”);
final String price = e.getAttribute(“price”);
final String time = e.getAttribute(“time”);
l.add(name);
l.add(Englishname);
l.add(direct);
l.add(actor);
l.add(type);
l.add(price);
l.add(time);
}
for (int j = 0; j l.size(); j++) {
System.out.println(l.get(j));
}
}
}
java讀取xml文件內容
java中不是有個讀取xml文件的類嗎?之間調用那類讀取出來,然後用取節點的方法去取對應節點的里的值。等下給你代碼。
public class ReaderXml {
private static String filename = “E:\\workplace\\readerxml\\bin\\reader\\xml\\reader.xml”;
// private static Config config;
public static void main(String []args) throws Exception{
//這裡用反射機制
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
//讀取文件流
InputStream is=new FileInputStream(filename);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();
//獲取所有xml節點
NodeList dbinfo=root.getChildNodes();
if(dbinfo!=null){
for(int i=0;idbinfo.getLength();i++){
//獲取節點判斷
Node db=dbinfo.item(i);
//如果是Hardwares節點,也就是你xml文件的最頂處的節點
if(db.getNodeName().equals(“Hardwares”)){
//獲取第二個節點包含的所有節點
NodeList list=db.getChildNodes();
for(int y=0;ylist.getLength();y++){
Node n=list.item(y);
//如果節點等於Hardware
if(n.getNodeName().equals(“Hardware”)){
//獲取Hardware節點中的所有節點
NodeList CnodeList=n.getChildNodes();
//取出Hardware裡面的所有節點
for(int k=0;kCnodeList.getLength();k++){
//取出節點
Node cn=CnodeList.item(k);
//去掉裡面的#text文件節點。沒用,這個不是你配置的節點,應該是xml文件隱藏的
if(!cn.getNodeName().equals(“#text”)){
//打印你所配置的所有節點 System.out.println(“node[“+k+”]=”+cn.getNodeName()+” nodeValue[“+k+”]=”+cn.getTextContent());
}
}
}
}
}
}
}
}
}
//具體你要幹嘛自己弄了!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256455.html