當前位置:首頁 » 編程語言 » xml讀取java

xml讀取java

發布時間: 2023-03-20 21:15:35

1. java讀取xml文件中節點值

import w c dom *;

import javax xml parsers *;

import java io *;

public class Parse{

//Document可以看作是XML在內談帶斗存中的一個鏡像 那麼一旦獲取這個Document 就意味著可以通過對

//內存的操作來實現對XML的操作 首先第一步獲取XML相關的Document

private Document doc=null;

public void init(String xmlFile) throws Exception{

//很明顯該類是一個單例 先獲取產生DocumentBuilder工廠

//的工廠 在通過這個工廠產生一個DocumentBuilder

//DocumentBuilder就是用來含磨產生Document的

DocumentBuilderFactory dbf=DocumentBuilderFactory newInstance();

DocumentBuilder db=dbf newDocumentBuilder();

//這個Document就是一個XML文件在內存中的鏡像

doc=db parse(new File(xmlFile));

}

//該方法負責把XML文件的內容顯示出來

public void viewXML(String xmlFile) throws Exception{

this init(xmlFile);

//在xml文件里 只有一個根元素 先把根元素拿出來看看

Element element=doc getDocumentElement();

System out println( 根元素為: +element getTagName());

NodeList nodeList=doc getElementsByTagName( dbstore );

System out println( dbstore節點鏈的長度: +nodeList getLength());

Node fatherNode=em( );

System out println( 父節點為: +fatherNode getNodeName());

//把父節點的屬性拿出來

NamedNodeMap attributes=fatherNode getAttributes();

for(int i= ;i<attributes getLength();i++){

Node attribute=em(i);

System out println( dbstore的屬性名為: +attribute getNodeName()+ 相對應的屬行蘆性值為: +attribute getNodeValue());

}

NodeList childNodes = fatherNode getChildNodes();

System out println(childNodes getLength());

for(int j= ;j<childNodes getLength();j++){

Node childNode=em(j);

//如果這個節點屬於Element 再進行取值

if(childNode instanceof Element){

//System out println( 子節點名為: +childNode getNodeName()+ 相對應的值為 +childNode getFirstChild() getNodeValue());

System out println( 子節點名為: +childNode getNodeName()+ 相對應的值為 +childNode getFirstChild() getNodeValue());

}

}

}

public static void main(String[] args)throws Exception{

Parse parse=new Parse();

//我的XML文件

parse viewXML( netct xml );

}

lishixin/Article/program/Java/hx/201311/26710

2. java如何讀取xml文件

xml解析還是用dom4j方便,

importjava.util.List;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.Element;
importorg.dom4j.io.SAXReader;


publicclassXMLPaser{
publicstaticvoidmain(String[]args){
paserXML();
}

publicstaticvoidpaserXML(){
SAXReaderreader=newSAXReader();
try{
//讀取XML文件
Documentdoc=reader.read("NewFile.xml");
Elementroot=doc.getRootElement();
System.out.println(root.getName());
List<Element>param=root.elements();
for(Elementelement:param){
if(element.attributeValue("name").equals("a")){
System.out.println(element.getText());
}
}
}catch(DocumentExceptione){
e.printStackTrace();
}
}
}

3. java 讀取 xml

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;

//以上是要進行xml文檔處理需導入的包和類

public class Xml {
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance(); //實例化一個工廠類
DocumentBuilder builder = factory.newDocumentBuilder(); //創建樹立xml文檔的對象,具體名稱我也說不上,其上以上兩條語句都是為處理xml文檔做准備的,即進行初始化工作
Document document = builder.parse(new File("E:\\xml.xml")); //導入xml文檔
Element rootElement = document.getDocumentElement(); //得到根節點對象,即<Root>

NodeList list = rootElement.getElementsByTagName("Header"); //通過標簽名"Header"得到<Header>結點對象的列表,即所有名為"Header"的結點都被保存在一個list列表對象中
Element element = (Element) list.item(0); //獲取第一個list對象,這里就是<Header>結點
System.out.println(element.getChildNodes().item(0).getNodeValue()); //輸出<Header>結點的第一個子節點的值,這里沒有其他子節點,則直接返回"日報表"

} catch (Exception e) {
System.out.println("exception:" + e.getMessage()); //若有異常,則輸出異常信息
}
}
}

4. JAVA中怎麼讀取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 ReadXMLFile {

public static void main(String argv[]) {

try {

File fXmlFile = new File("/Users/mkyong/staff.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);

//optional, but recommended
//read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
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);

System.out.println("\nCurrent Element :" + nNode.getNodeName());

if (nNode.getNodeType() == Node.ELEMENT_NODE) {

Element eElement = (Element) nNode;

System.out.println("Staff id : " + eElement.getAttribute("id"));
System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("Nick Name : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
System.out.println("Salary : " + eElement.getElementsByTagName("salary").item(0).getTextContent());

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

}

5. java 讀取xml子元素

java中獲取xml節點元素值 根據不同的處理xml方式不同而不同。
java中解析xml的方式:大體可以使用以下四種
------------------------------------------------------------
DOM(Document Object Model)
為 XML 文檔的已解析版本定義了一組介面。解析器讀入整個文檔,
然後構建一個駐留內存的樹結構,然後代碼就可以使用 DOM 介面來操作這個樹結構。
優點:整個文檔樹在內存中,便於操作;支持刪除、修改、重新排列等多種功能;
缺點:將整個文檔調入內存(包括無用的節點),浪費時間和空間;
使用場合:一旦解析了文檔還需多次訪問這些數據;硬體資源充足(內存、CPU)

SAX(Simple API for XML)
為解決DOM的問題,出現了SAX。SAX ,事件驅動。
當解析器發現元素開始、元素結束、文本、文檔的開始或結束等時,發送事件,
程序員編寫響應這些事件的代碼,保存數據。優點:不用事先調入整個文檔,佔用資源少;
SAX解析器代碼比DOM解析器代碼小,適於Applet,下載。
缺點:不是持久的;事件過後,若沒保存數據,那麼數據就丟了;無狀態性;
從事件中只能得到文本,但不知該文本屬於哪個元素;
使用場合:Applet;只需XML文檔的少量內容,很少回頭訪問;機器內存少;

DOM4J
DOM4J 是一個非常非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,
同時它也是一個開放源代碼的軟體。如今你可以看到越來越多的 Java 軟體都在使用 DOM4J 來讀寫 XML,
特別值得一提的是連 Sun 的 JAXM 也在用 DOM4J

JDOM
為減少DOM、SAX的編碼量,出現了JDOM;優點:20-80原則,極大減少了代碼量。
使用場合:要實現的功能簡單,如解析、創建等,但在底層,JDOM還是使用SAX(最常用)、DOM、Xanan文檔。
------------------------------
參考代碼
dom4j
------------------------------
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
---------------------------------------------
File f = new File("students.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
Element root = doc.getRootElement();

for (Iterator iter = root.elementIterator(); iter.hasNext();) {
Element element = (Element) iter.next();
// System.out.println(element.attributeValue("email"));

String ids=element.elementText("stuId");
System.out.println(ids);
String names=element.elementText("stuName");
System.out.println(names);
String ages=element.elementText("age");
System.out.println(ages);
}
------------------------------------
dom 方式
---------------
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
------------------------

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 允許名字空間
// factory.setNamespaceAware(true);
// 允許驗證
// factory.setValidating(true);
// 獲得DocumentBuilder的一個實例

DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
// 出異常時輸出異常信息,然後退出,下同
System.exit(1);
}

Document doc = null;
// 解析文檔,並獲得一個Document實例。

try {
try {
// InputStream is=new FileInputStream("students.xml");
doc = builder.parse("students.xml");
// doc = builder.parse(is);

} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (DOMException dom) {
System.err.println(dom.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
// System.exit(1);
}
for (int i = 0; i < nlStudent.getLength(); i++) {

Element elmtStudent = (Element) nlStudent.item(i);
String email = elmtStudent.getAttribute("email");
System.out.println(email);

NodeList ids = elmtStudent.getElementsByTagName("stuId");
Element id = (Element)ids.item(0);
Node tId = id.getFirstChild();
System.out.println(tId.getNodeValue());

NodeList names = elmtStudent.getElementsByTagName("stuName");
Element e = (Element)names.item(0);
Node tName = e.getFirstChild();
System.out.println(tName.getNodeValue());
}

6. Java如何讀取XML文件 具體實現

xml的解析
1.解析式為了得到裡面的內容,進行增,刪,改查的操作

XML的解析方式
SAX(Simple API for XML)xml文檔的一種簡單的解析方式
DOM(Document Object Model)
DOM4J
SAX:基於事件的解析方式
DOM: 基於對象的解析方式
事件監聽三要素
1.事件源
2.監聽器
3.事件
SAX 基於事件的解析
優點: 簡單 效率高
缺點:順序執行,不能得到某個元素 不能逆向執行
不能進行增,與刪的操作
SAX解析方式工作原理:
通過時間源xml文檔創建SAXParseFactory
SAXParserFactory factory=SAXParserFactory.newInstance();
得到一個解析器
SAXParser parse=factory.newSAXParser();
對xml文件進行解析
得到解析的文件對象
File file=new File("employees.xml");
通過監聽器進行解析
MyListener listener=new MyListener();
parse.parse(file,listener);
對於監聽器有5個方法:監聽器所在的類實現的介面有:
org.xml.sax.hepers.DefaultHandler
org.xml.sax
通過查看API文檔中的DefaultHandler類中的下面5個方法
startDocument() 對於文檔開始的解析
public void startDocument()throws SAXException{
System.out.println("文檔開始解析啦!!!!");
}
startElement()元素開始的解析其中幾個名詞
url:命名空間的url
localName:命名空間的前綴
qName:元素
attributes:元素里的屬性
public void startElement(String url,String localName,String qName,Attributes attributes)throws SAXException{
StringBuffer sb=new StringBuffer();
sb.append("<"+qName);
for(int i=0;i<attributes.getLength();i++){
String attName=attributes.getQName(i);獲得元素屬性名稱其中的i為元素的第幾個屬性
String attValue=attributes.getValue(i);獲得元素屬性的值其中的i為元素的第幾個屬性的值
sb.append(attName+"="+attValue);
}
sb.append(">");
System.out.print(sb.toString());
}
character()獲得元素的內容體
public void characters(char[]ch,int start,int length)throws SAXException{
System.out.print(new String(ch,start,length));
}
endElement()獲得元素的結束事件
public void endElement(String url,String localName,String qName)throws SAXException{
System.out.print("</"+qName+">");
}
endDocument()獲得文檔的結束事件
public void endDocument(){
System.out.println("文檔解析結束啦!!!!");
}
對於SAX解析只能逐行解析不能越行解析
DOM:基於對象的
優點:靈活,能進行增刪的操作
缺點:讀取速度慢,效率低 佔用的內容多
對於DOM解析:不需要添加監聽器,按級解析從根元素、一級子元素、二級子元素......
同SAX解析相同剛開始也是要得到一個解析器;
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance() ;
因為構造方法不可用不可以new對象只能用newInstance()方法得到解析器對象
DocumentBuilder builder=factory.newDocumentBuilder() ;得到一個解析器
對於document可以有兩種方法得到:
Document document= builder.parse(new File(文件路徑));通過parse方法解析一個已有的xml文檔
Document document=builder.newDocument();可以得到一個空的document對象
得到根節點
Element root=document.getDocumentElement();
如果不存在根節點即為一個空document對象的時候只能添加跟節點
Element root=document.createElement(根節點的名字)
得到根節點下面的所有一級子元素
NodeList list=root.getElementsByTagName(根節點的名字可以用root.getTagName或者root.getNodeName()得到根節點的名字)();
{
對與document可以添加一級子元素
不管document是否為空都可以添加
Element firstElements =root.creatElement(一級子元素的名字);
當然也可以為一級子元素添加屬性
一級子元素的名字.setAttribute("屬性名","屬性值");
}
通過遍歷list集合
for(int i=0;i<list.getLength();i++){
Element first_elements=(Element)list.item(i);
可以得到一級資源的屬性的值當知道屬性的時候
String attribute=first_elements.getAttribute("屬性的名字");
得到一級子元素的名字
String first_elements_name=first_elements.getNodeName();
得到一級子元素下面所有的元素如id 第一個id元素當然也可有很多個id
通過item()來確定要取那個id
Element id_element=(Element)first_elements.getElementByName("id").item(0);
得到id的值
String id_value=id_element.getFirstChild().getTextContent();
通過這個遍歷集合可以拿到所有子元素
}
DOM添加或刪除元素:
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance() ;
因為構造方法不可用不可以new對象只能用newInstance()方法得到解析器對象
DocumentBuilder builder=factory.newDocumentBuilder() ;得到一個解析器
對於document可以有兩種方法得到:
Document document= builder.parse(new File(文件路徑));通過parse方法解析一個已有的xml文檔
Document document=builder.newDocument();可以得到一個空的document對象
得到根節點
Element root=document.getDocumentElement();
如果不存在根節點即為一個空document對象的時候只能添加跟節點
Element root=document.createElement(根節點的名字)
對與document可以添加一級子元素
不管document是否為空都可以添加
Element firstElements =root.creatElement(一級子元素的名字);
當然也可以為一級子元素添加屬性
一級子元素的名字.setAttribute("屬性名","屬性值");
添加二級子元素
Element secondElements=firstElements.creatElement("二級子元素的名字");
掛載組裝
一級子元素firstElements.append(secondElements);
根節點root.appendChild(firstElements);
將document對象樹寫入磁碟
TransformerFactory tf=TransformerFactory.newInstance();
Transformer former=tf.newTransformer();
DOMSource source=new DOMSource(document);
StreamResult result= new StreamResult(new File("10.xml"));結果集
former.transform(source,result);
完畢
DOM4j需要藉助外部jar包
需要藉助外部jar包就必須設置環境變數中的classpath把classpath設置成
dom4j jar包存在的路徑(絕對路徑)
例如:
set classpath=.;C:\Documents and Settings\Administrator\桌面\day3\dom4j.jar
import org.dom4j.io.*;
import java.io.*;
import java.util.*;
import org.dom4j.*;
public static void read_XML(String fileName){
try{
//得到一個解析器,相當於SAX,DOM裡面的解析器工廠,與解析器
SAXReader reader=new SAXReader();
//得到一個對象樹
Document document=reader.read(new File(fileName));
//得到一個根元素
Element root=document.getRootElement();
System.out.println(root.getName());
//得到所有的一級子元素
List firstElements=root.elements();
Iterator it=firstElements.iterator();
while(it.hasNext()){
//依次得到每一個一級子元素
Element firstElement=(Element)it.next();
System.out.println(firstElement.getName());
//得到所有的屬性
List attributes=firstElement.attributes();
for(Object obj:attributes){
//依次得到每一個屬性
Attribute att=(Attribute)obj;
System.out.println(att.getName()+"="+att.getValue());
}
//得到一級子元素下面的所有元素,及其附帶值
List second_Elements=firstElement.elements();
Iterator second_Element=second_Elements.iterator();
while(second_Element.hasNext()){
Element sec_Element=(Element)second_Element.next();
System.out.println(sec_Element.getName()+":"+sec_Element.getText());

}
System.out.println("----------");
}
}catch(Exception e){

}
}
public static void write(String fileName){
try{
Document document = DocumentHelper.createDocument();
//創造一級子元素
Element books=document.addElement("books");
books.addComment("The book is J2EE");
Element book=books.addElement("book");
創建元素的屬性
book.addAttribute("show","yes");
book.addAttribute("page","100");
創建二級子元素
Element book_name=book.addElement("bookName");
創建元素的內容體
book_name.setText("xml");
Element book_price=book.addElement("bookPrice");
book_price.setText("3000");
Element book_press=book.addElement("bookPress");
book_press.setText("etoak");
Element book_author=book.addElement("bookAuthor");
book_author.setText("Robin");
//掛載另一個一級子元素
book=books.addElement("book");
book.addAttribute("show","NO");
book.addAttribute("page","200");
book_name=book.addElement("bookName");
book_name.setText("葵花寶典");
book_price=book.addElement("bookPrice");
book_price.setText("無價之寶");
book_press.addElement("bookPress");
book_press.setText("華山派");
book_author=book.addElement("bookAuthor");
book_author.setText("林平之");
//創建xml文件輸出的路徑
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("gbk");
XMLWriter xw=new XMLWriter(new FileOutputStream(fileName),
format);
//XMLWriter xx= new XMLWriter(System.out,OutputFormat.createPrettyPrint());
xw.write(document);
xw.flush();
xw.close();
}catch(Exception e){
對於DOM4j添加子元素,是一級一級的添加的而在DOM中是先創造
子元素然後再掛載的DOM4j在創建子元素的時候就確定好了順序
對於文件的輸出各有千秋各有特色其中SAX是需要添加監聽器的
}
}
public static void update(String fileName){
try{
SAXReader reader= new SAXReader();
Document document = reader.read(new File(fileName));
Element root = document.getRootElement();
System.out.println(root.getName());
在根節點上添加一級子元素
Element student=root.addElement("student");
Element id=student.addElement("id");
id.setText("007");
OutputStream os= new FileOutputStream(fileName);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xw = new XMLWriter(os,format);
xw.write(document);
xw.flush();
xw.close();
}catch(Exception e){
和創建一個新的document對象類似只不過這個的根節點已經存在
直接可以在根節點上添加一級子元素;
}
}

7. java如何讀取xml節點元素值

java讀取xml節點元素,主要使用java提供的解析xml的工具類SAXParserFactory,如下代碼:

packagexml.xmlreader;
importjava.io.File;
importjava.net.URL;
importjava.util.Properties;
importjavax.xml.parsers.SAXParser;
importjavax.xml.parsers.SAXParserFactory;
publicclassCFGParser{//解析xml文件的工具類
privatePropertiesprops;

publicPropertiesgetProps(){
returnprops;
}
publicvoidsetProps(Propertiesprops){
this.props=props;
}

publicvoidparse(Stringfilename)throwsException
{
CFGHandlerhandler=newCFGHandler();

SAXParserFactoryfactory=SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);

SAXParserparser=factory.newSAXParser();

URLconfURL=super.getClass().getClassLoader().getResource(filename);
if(confURL==null){
System.out.println("Can'tfindconfigrationfile.");
return;
}
try
{
parser.parse(confURL.toString(),handler);
this.props=handler.getProps();
}
finally{
factory=null;
parser=null;
handler=null;
}
}

publicvoidparseFile(Stringfilename)
throwsException
{
CFGHandlerhandler=newCFGHandler();

SAXParserFactoryfactory=SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
SAXParserparser=factory.newSAXParser();


Filef=newFile(filename);
if((f==null)||(!f.exists()))
return;
try
{
parser.parse(f,handler);


this.props=handler.getProps();
}
finally{
factory=null;
parser=null;
handler=null;
}
}
}
packagexml.xmlreader;
importjava.util.Properties;
importorg.xml.sax.Attributes;
importorg.xml.sax.SAXException;
importorg.xml.sax.helpers.DefaultHandler;


{
privatePropertiesprops;
privateStringcurrentSet;
privateStringcurrentName;
=newStringBuffer();

publicCFGHandler()
{
this.props=newProperties();
}

publicPropertiesgetProps(){
returnthis.props;
}

publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattributes)
throwsSAXException
{
this.currentValue.delete(0,this.currentValue.length());
this.currentName=qName;
}

publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException
{
this.currentValue.append(ch,start,length);
}

publicvoidendElement(Stringuri,StringlocalName,StringqName)
throwsSAXException
{
this.props.put(qName.toLowerCase(),this.currentValue.toString().trim());
}
}
xml文件


<?xmlversion="1.0"encoding="UTF-8"?>
<xml-body>
<refresh_userlistdesc="用戶列表刷新間隔時間(秒)">6</refresh_userlist>
<refresh_messagedesc="短消息刷新間隔時間(秒)">10</refresh_message>
<morningbegindesc="上午上班時間">23:00</morningbegin>
<morningenddesc="上午下班時間">12:00</morningend>
<afternoonbegindesc="下午上班時間">18:00</afternoonbegin>
</xml-body>
jsp獲取各個節點的值:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<html>
<jsp:useBeanid="cfgp"scope="page"class="xml.xmlreader.CFGParser"></jsp:useBean>
<body>
<%
cfgp.parse("kaoqin.xml");
Propertiespro=cfgp.getProps();
StringstTime=pro.getProperty("morningbegin");
StringedTime=pro.getProperty("morningend");
Stringafternoonbegin=pro.getProperty("afternoonbegin");

out.println(stTime+" "+edTime+" "+afternoonbegin);
System.out.println(stTime+" "+edTime+" "+afternoonbegin);
%>
</body>
</html>

8. 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 : (List<Element>)document.getRootElement().elements()){
//取得txtbook節點下的name節點的內容
System.out.println(i+"."+txtbook.element("name").getText());
i++; //原來這里少些了這一行,先補上
}
}
}

9. JAVA讀取XML文件

import java.io.File;

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 Xml {
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("E:\\新建 文本文檔 (3).xml"));
Element rootElement = document.getDocumentElement();

NodeList list = rootElement.getElementsByTagName("Header");
Element element = (Element) list.item(0);
System.out.println(element.getChildNodes().item(0).getNodeValue());

} catch (Exception e) {
System.out.println("exception:" + e.getMessage());
}
}
}

10. 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;i<dbinfo.getLength();i++){
//獲取節點判斷
Node db=dbinfo.item(i);
//如果是Hardwares節點,也就是你xml文件的最頂處的節點
if(db.getNodeName().equals("Hardwares")){
//獲取第二個節點包含的所有節點
NodeList list=db.getChildNodes();
for(int y=0;y<list.getLength();y++){
Node n=list.item(y);
//如果節點等於Hardware
if(n.getNodeName().equals("Hardware")){
//獲取Hardware節點中的所有節點
NodeList CnodeList=n.getChildNodes();
//取出Hardware裡面的所有節點
for(int k=0;k<CnodeList.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());
}
}
}

}
}
}
}
}
}
//具體你要幹嘛自己弄了!

熱點內容
安卓為什麼連上wifi後沒有網路 發布:2024-05-20 05:17:50 瀏覽:417
安卓usb在設置哪裡 發布:2024-05-20 05:03:03 瀏覽:185
綏化編程 發布:2024-05-20 04:59:44 瀏覽:989
基本原理和從頭計演算法 發布:2024-05-20 04:50:32 瀏覽:28
配置情況指的是什麼 發布:2024-05-20 04:48:14 瀏覽:495
那個程序用來編譯源文件 發布:2024-05-20 04:46:45 瀏覽:549
小程序需要資料庫嗎 發布:2024-05-20 04:35:14 瀏覽:337
鏈接sqlserver 發布:2024-05-20 04:27:53 瀏覽:209
ftp文件伺服器擴容 發布:2024-05-20 04:22:21 瀏覽:646
linux心跳包 發布:2024-05-20 04:17:52 瀏覽:970