java dom4j解析xml文件代碼實(shí)例分享
解析xml文件有兩種方式,一種是利用Dom去解析,這種方式寫起代碼比較麻煩,對(duì)于剛?cè)胧值某绦騿T來說比較容易出問題;第二種就是使用Dom4j包去解析
在要使用Dom4j包的時(shí)候,肯定要先引入包
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author Icer
*/
public class Dom4jDemo{
/**
*
* @param fileName 生成的xml文件名
* @param txtName 包含的對(duì)賬文件txt文件名
*/
public void createXml(String fileName,String txtName) {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root");
Element head = root.addElement("head");
Element type = head.addAttribute("type", "0");
Element code = head.addAttribute("code", "3003");
Element yhlb = head.addElement("yhlb");
yhlb.setText("01");
Element username = head.addElement("username");
username.setText("gsyh");
Element password = head.addElement("password");
password.setText("zheshimima");
Element body = root.addElement("body");
Element data = body.addElement("data");
Element dzwjm = data.addElement("dzwjm");
dzwjm.setText(txtName);
try {
//寫入文件
Writer fileWriter = new FileWriter(fileName);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(fileWriter,format);
xmlWriter.write(document);
xmlWriter.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
/**
*
* @param fileName 要解析的文件名
* @return 解析xml文件得到的需要對(duì)賬的文件名
*/
public String parserXml(String fileName) {
String findFileName = "";
File inputXml = new File(fileName);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml);
Element root = document.getRootElement();
for(Iterator i = root.elementIterator();i.hasNext();){
Element head = (Element) i.next();
for(Iterator j = head.elementIterator();j.hasNext();){
Element elem = (Element) j.next();
System.out.println(elem.getName()+":"+elem.getText());
for(Iterator k=elem.elementIterator();k.hasNext();){
Element last = (Element) k.next();
System.out.println(last.getName()+":"+last.getText());
findFileName = last.getText();
}
}
}
} catch (DocumentException e) {
System.out.println(e.getMessage()+"hello");
}
System.out.println("dom4j parserXml");
return findFileName;
}
/**
* 測(cè)試main方法
* @param args
*/
public static void main(String[] args){
Dom4jDemo demo = new Dom4jDemo();
demo.createXml("D://request.xml","test.txt");
demo.parserXml("e://request.xml");
}
相關(guān)文章
BufferedInputStream(緩沖輸入流)詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了BufferedInputStream緩沖輸入流的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
restTemplate實(shí)現(xiàn)跨服務(wù)API調(diào)用方式
這篇文章主要介紹了restTemplate實(shí)現(xiàn)跨服務(wù)API調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-07-07
SpringBoot整合Mybatis-plus的具體過程使用
這篇文章主要介紹了SpringBoot?整合mybatis+mybatis-plus的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
idea?http?request無法識(shí)別環(huán)境變量的解決步驟
AlibabaCloudToolkit插件安裝后在?Editor->File?Types增加?AlibabaCloudROStemplates(JSON)項(xiàng)且會(huì)配置為解析*.json?文件,導(dǎo)致http?client無法正確解析http-client.env.json文件而無法讀取環(huán)境變量,本文介紹idea?http?request無法識(shí)別環(huán)境變量問題,需要的朋友可以參考下2023-08-08
SpringBoot中的響應(yīng)式web應(yīng)用詳解
這篇文章主要介紹了SpringBoot中的響應(yīng)式web應(yīng)用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
RestClient?通過攔截器實(shí)現(xiàn)請(qǐng)求加密的示例
本文介紹了如何通過攔截器實(shí)現(xiàn)請(qǐng)求加密,并通過RestClient優(yōu)化了加密過程,傳統(tǒng)的加密方法依賴對(duì)象轉(zhuǎn)換和序列化處理,容易導(dǎo)致加密不一致或難以調(diào)試的問題,通過引入攔截器,可以直接操作請(qǐng)求體,避免了不必要的轉(zhuǎn)換步驟,確保加密過程與請(qǐng)求體完全一致,感興趣的朋友一起看看吧2025-02-02

