本文目錄一覽:
- 1、在java在如何解析XML文件
- 2、java解析json格式文件,再保存在資料庫怎麼做?
- 3、如何用java解析CSV文件
- 4、java 怎樣解析 excel生成的xml文件
- 5、Java裡面怎麼解析xml文件的內容
在java在如何解析XML文件
在java環境下讀取xml文件的方法主要有4種:DOM、SAX、JDOM、JAXB
1. DOM(Document Object Model)
此方法主要由W3C提供,它將xml文件全部讀入內存中,然後將各個元素組成一棵數據樹,以便快速的訪問各個節點 。 因此非常消耗系統性能 ,對比較大的文檔不適宜採用DOM方法來解析。 DOM API 直接沿襲了 XML 規範。每個結點都可以擴展的基於 Node 的介面,就多態性的觀點來講,它是優秀的,但是在 Java 語言中的應用不方便,並且可讀性不強。
實例:
import javax.xml.parsers.*;
//XML解析器介面
import org.w3c.dom.*;
//XML的DOM實現
import org.apache.crimson.tree.XmlDocument;
//寫XML文件要用到
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//允許名字空間
factory.setNamespaceAware(true);
//允許驗證
factory.setValidating(true);
//獲得DocumentBuilder的一個實例
try {
DocumentBuilder builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
// 出異常時輸出異常信息,然後退出,下同
System.exit(1);
}
//解析文檔,並獲得一個Document實例。
try {
Document doc = builder.parse(fileURI);
} catch (DOMException dom) {
System.err.println(dom.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}
//獲得根節點StuInfo
Element elmtStuInfo = doc.getDocumentElement();
//得到所有student節點
NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS(
strNamespace, “student”);
for (……){
//當前student節點元素
Element elmtStudent = (Element)nlStudent.item(i);
NodeList nlCurrent = elmtStudent.getElementsByTagNameNS(
strNamespace, “name”);
}
java解析json格式文件,再保存在資料庫怎麼做?
java解析json格式文件,再保存在資料庫的方法:
1:定義一個實體類
2:用json lib將json字元串轉為Java對象
3:用jdbc或hibernate將java對象存入資料庫
直接讀寫文件,再把讀出來的文件內容格式化成json,再用JDBC、Mybatis或者其他框架將json數據存入資料庫。
假設實體類是這樣的:
public class ElectSet {
public String xueqi;
public String xuenian;
public String startTime;
public String endTime;
public int menshu;
public String isReadDB;
//{“xueqi”:,”xuenian”:,”startTime”:,”endTime”:,”renshu”:,”isReadDB”:}
public String getXueqi() {
return xueqi;
}
public void setXueqi(String xueqi) {
this.xueqi = xueqi;
}
public String getXuenian() {
return xuenian;
}
public void setXuenian(String xuenian) {
this.xuenian = xuenian;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public int getMenshu() {
return menshu;
}
public void setMenshu(int menshu) {
this.menshu = menshu;
}
public String getIsReadDB() {
return isReadDB;
}
public void setIsReadDB(String isReadDB) {
this.isReadDB = isReadDB;
}
}
有一個json格式的文件,存的信息如下:
Sets.json:
{“xuenian”:”2007-2008″,”xueqi”:”1″,”startTime”:”2009-07-19 08:30″,”endTime”:”2009-07-22 18:00″,”menshu”:”10″,”isReadDB”:”Y”}
具體操作:
/*
* 取出文件內容,填充對象
*/
public ElectSet findElectSet(String path){
ElectSet electset=new ElectSet();
String sets=ReadFile(path);//獲得json文件的內容
JSONObject jo=JSONObject.fromObject(sets);//格式化成json對象
//System.out.println(“————” jo);
//String name = jo.getString(“xuenian”);
//System.out.println(name);
electset.setXueqi(jo.getString(“xueqi”));
electset.setXuenian(jo.getString(“xuenian”));
electset.setStartTime(jo.getString(“startTime”));
electset.setEndTime(jo.getString(“endTime”));
electset.setMenshu(jo.getInt(“menshu”));
electset.setIsReadDB(jo.getString(“isReadDB”));
return electset;
}
//設置屬性,並保存
public boolean setElect(String path,String sets){
try {
writeFile(path,sets);
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
//讀文件,返回字元串
public String ReadFile(String path){
File file = new File(path);
BufferedReader reader = null;
String laststr = “”;
try {
//System.out.println(“以行為單位讀取文件內容,一次讀一整行:”);
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
//一次讀入一行,直到讀入null為文件結束
while ((tempString = reader.readLine()) != null) {
//顯示行號
System.out.println(“line ” line “: ” tempString);
laststr = laststr tempString;
line ;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
return laststr;
}
將獲取到的字元串,入庫即可。
如何用java解析CSV文件
思想:先獲取csv文件的路徑,通過BufferedReader類去讀該路徑中的文件,使用readLine方法進行逐行讀取。
注意:使用readLine方法後會自動轉到下一行。因此在判斷是否為空後得先將讀取到的內容賦值給一變數,在循環中使用該變數即可。
public static void main(String[] args)
{
File csv = new File(“C:\\Users\\chenxumin\\Desktop\\Result.csv”); // CSV文件路徑
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader(csv));
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
String line = “”;
String everyLine = “”;
try {
ListString allString = new ArrayList();
while ((line = br.readLine()) != null) //讀取到的內容給line變數
{
everyLine = line;
System.out.println(everyLine);
allString.add(everyLine);
}
System.out.println(“csv表格中所有行數:”+allString.size());
} catch (IOException e)
{
e.printStackTrace();
}
}
java 怎樣解析 excel生成的xml文件
java解析excel生成的xml文件的方法是使用dom4j實現的。
dom4j是一個簡單的開源庫,用於處理XML、 XPath和XSLT,它基於Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
1、excel生成的xml樣例文件:
?xml version=”1.0″?
?mso-application progid=”Excel.Sheet”?
Workbook xmlns=”urn:schemas-microsoft-com:office:spreadsheet”
xmlns:o=”urn:schemas-microsoft-com:office:office”
xmlns:x=”urn:schemas-microsoft-com:office:excel”
xmlns:ss=”urn:schemas-microsoft-com:office:spreadsheet”
xmlns:html=””
DocumentProperties xmlns=”urn:schemas-microsoft-com:office:office”
Created2006-09-16T00:00:00Z/Created
LastSaved2016-07-25T03:26:50Z/LastSaved
Version14.00/Version
/DocumentProperties
OfficeDocumentSettings xmlns=”urn:schemas-microsoft-com:office:office”
AllowPNG/
RemovePersonalInformation/
/OfficeDocumentSettings
ExcelWorkbook xmlns=”urn:schemas-microsoft-com:office:excel”
WindowHeight7956/WindowHeight
WindowWidth14808/WindowWidth
WindowTopX240/WindowTopX
WindowTopY168/WindowTopY
ActiveSheet2/ActiveSheet
ProtectStructureFalse/ProtectStructure
ProtectWindowsFalse/ProtectWindows
/ExcelWorkbook
Styles
Style ss:ID=”Default” ss:Name=”Normal”
Alignment ss:Vertical=”Bottom”/
Borders/
Font ss:FontName=”宋體” x:CharSet=”134″ ss:Size=”11″ ss:Color=”#000000″/
Interior/
NumberFormat/
Protection/
/Style
Style ss:ID=”s16″ ss:Name=”好”
Font ss:FontName=”宋體” x:CharSet=”134″ ss:Size=”11″ ss:Color=”#006100″/
Interior ss:Color=”#C6EFCE” ss:Pattern=”Solid”/
/Style
Style ss:ID=”s17″
Alignment ss:Horizontal=”Left” ss:Vertical=”Center” ss:Indent=”1″
ss:WrapText=”1″/
Font ss:FontName=”宋體” x:CharSet=”134″ ss:Size=”8″ ss:Color=”#686868″/
NumberFormat ss:Format=”@”/
/Style
Style ss:ID=”s18″ ss:Parent=”s16″
Alignment ss:Vertical=”Bottom”/
/Style
Style ss:ID=”s19″
NumberFormat ss:Format=”yyyy/m/d\ h:mm:ss”/
/Style
/Styles
Worksheet ss:Name=”Sheet1″
Table ss:ExpandedColumnCount=”6″ ss:ExpandedRowCount=”3″ x:FullColumns=”1″
x:FullRows=”1″ ss:DefaultRowHeight=”14.4″
Row
CellData ss:Type=”String”工號/Data/Cell
CellData ss:Type=”String”姓名 /Data/Cell
Cell ss:Index=”5″Data ss:Type=”String”工號/Data/Cell
CellData ss:Type=”String”姓名/Data/Cell
/Row
Row
CellData ss:Type=”Number”111/Data/Cell
CellData ss:Type=”String”張三/Data/Cell
Cell ss:Index=”5″Data ss:Type=”Number”111/Data/Cell
Cell ss:Formula=”=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)”Data
ss:Type=”String”張三/Data/Cell
/Row
Row
CellData ss:Type=”Number”112/Data/Cell
CellData ss:Type=”String”李四/Data/Cell
Cell ss:Index=”5″Data ss:Type=”Number”112/Data/Cell
Cell ss:Formula=”=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)”Data
ss:Type=”String”李四/Data/Cell
/Row
/Table
WorksheetOptions xmlns=”urn:schemas-microsoft-com:office:excel”
PageSetup
Header x:Margin=”0.3″/
Footer x:Margin=”0.3″/
PageMargins x:Bottom=”0.75″ x:Left=”0.7″ x:Right=”0.7″ x:Top=”0.75″/
/PageSetup
Panes
Pane
Number3/Number
ActiveRow7/ActiveRow
ActiveCol5/ActiveCol
/Pane
/Panes
ProtectObjectsFalse/ProtectObjects
ProtectScenariosFalse/ProtectScenarios
/WorksheetOptions
/Worksheet
/Workbook
2、java解析代碼:
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Demo {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File(“person.xml”));
Element root = document.getRootElement();
Iterator it = root.elementIterator();
while (it.hasNext()) {
Element element = (Element) it.next();
//未知屬性名稱情況下
/*Iterator attrIt = element.attributeIterator();
while (attrIt.hasNext()) {
Attribute a = (Attribute) attrIt.next();
System.out.println(a.getValue());
}*/
//已知屬性名稱情況下
System.out.println(“id: ” + element.attributeValue(“id”));
//未知元素名情況下
/*Iterator eleIt = element.elementIterator();
while (eleIt.hasNext()) {
Element e = (Element) eleIt.next();
System.out.println(e.getName() + “: ” + e.getText());
}
System.out.println();*/
//已知元素名情況下
System.out.println(“title: ” + element.elementText(“title”));
System.out.println(“author: ” + element.elementText(“author”));
System.out.println();
}
}
}
Java裡面怎麼解析xml文件的內容
Java解析xml代碼,我是用dom4j讀取的,
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4JReader {
public Dom4JReader() {
}
/**
*
* @Function 獲取xml文件里符合要求的數據
*/
public void getDom() {
SAXReader sr = new SAXReader();
try {
//獲取applicationContext.xml文件的對象
Document doc = sr.read(new File(“applicationContext.xml”));
//獲得跟節點
Element root = doc.getRootElement();
//// 枚舉所有子節點
for (Iterator i = root.elementIterator(“bean”); i.hasNext();) {
//獲取bean節點
Element bean = (Element) i.next();
// 枚舉名稱為bean的節點
for (Iterator j = bean.attributeIterator(); j.hasNext();) {
//獲取bean節點的所有屬性
Attribute attr = (Attribute) j.next();
//判斷屬性的值如果為fileUploadBo
if (attr.getText().equals(“fileUploadBo”)) {
//列印出這個bean節點的所有信息
System.out.println(bean.asXML());
}
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
這段代碼要執行的話,要導入dom4j的包,還有
//獲取applicationContext.xml文件的對象
Document doc = sr.read(new File(“applicationContext.xml”));
在src下有這個xml文件。
原創文章,作者:TAIF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133804.html