java 寫入xml文件_java讀寫xml文件

要讀的xml文件

李華姓名>

14年齡>

學生>

張三姓名>

16年齡>

學生>

學生花名冊>

package xml;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.Iterator;

import java.util.Vector;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.transform.OutputKeys;

import javax.xml.transform.Result;

import javax.xml.transform.Source;

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;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.w3c.dom.Text;

public class DomTest {

Vector students_Vector;

private Vector readXMLFile(String file) throws Exception {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = dbf.newDocumentBuilder();

Document doc = builder.parse(file); // 獲取到xml文件

// 下面開始讀取

Element root = doc.getDocumentElement(); // 獲取根元素

NodeList students = root.getElementsByTagName_r("學生");

students_Vector = new Vector();

for (int i = 0; i < students.getLength(); i++) {

// 一次取得每一個學生元素

Element ss = (Element) students.item(i);

// 創建一個學生的實例

student stu = new student();

stu.setSex(ss.getAttribute("性別"));

NodeList names = ss.getElementsByTagName_r("姓名");

Element e = (Element) names.item(0);

Node t = e.getFirstChild();

stu.setName(t.getNodeValue());

NodeList ages = ss.getElementsByTagName_r("年齡");

e = (Element) ages.item(0);

t = e.getFirstChild();

stu.setAge(Integer.parseInt(t.getNodeValue()));

students_Vector.add(stu);

}

return students_Vector;

}

// 寫入xml文件

public static void callWriteXmlFile(Document doc, Writer w, String encoding) {

try {

Source source = new DOMSource(doc);

Result result = new StreamResult(w);

Transformer xformer = TransformerFactory.newInstance()

.newTransformer();

xformer.setOutputProperty(OutputKeys.ENCODING, encoding);

xformer.transform(source, result);

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

}

}

private void writeXMLFile(String outfile) {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = null;

try {

builder = dbf.newDocumentBuilder();

} catch (Exception e) {

}

Document doc = builder.newDocument();

Element root = doc.createElement("學生花名冊");

doc.appendChild(root); // 將根元素添加到文檔上

// 獲取學生信息

for (int i = 0; i < students_Vector.size(); i++) {

student s = (student) students_Vector.get(i);

// 創建一個學生

Element stu = doc.createElement("學生");

stu.setAttribute("性別", s.getSex());

root.appendChild(stu);// 添加屬性

// 創建文本姓名節點

Element name = doc.createElement("姓名");

stu.appendChild(name);

Text tname = doc.createTextNode(s.getName());

name.appendChild(tname);

//創建文本年齡節點

Element age = doc.createElement("年齡");

stu.appendChild(age); // 將age添加到學生節點上

Text tage = doc.createTextNode(String.valueOf(s.getAge()));

age.appendChild(tage); // 將文本節點放在age節點上

}

try {

FileOutputStream fos = new FileOutputStream(outfile);

OutputStreamWriter outwriter = new OutputStreamWriter(fos);

// ((XmlDocument)doc).write(outwriter); //出錯!

callWriteXmlFile(doc, outwriter, "gb2312");

outwriter.close();

fos.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String args[]) {

String str = "xml/student.xml";

DomTest t = new DomTest();

try {

Vector v = t.readXMLFile(str);

Iterator it = v.iterator();

while (it.hasNext()) {

student s = (student) it.next();

System.out.println(s.getName() + "\t" + s.getAge() + "\t"

+ s.getSex());

}

} catch (Exception e) {

e.printStackTrace();

}

String outfile = "xml/stucopy.xml";

t.writeXMLFile(outfile);

}

}

class student{

private String sex;

private String name;

private int age;

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public void setSex(String s){sex=s;}

public String getSex(){return sex;}

public void setName(String n){name=n;}

public String getName(){return name;}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541904.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541904.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541904.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript中帶有示例的Math.max()方法

JavaScript | Math.max()方法 (JavaScript | Math.max() Method) Math.max() is a function in math library of JavaScript that is used to return the greatest value of all the passed values to the method. Math.max()是JavaScript數學庫中的函數&#xff0c;用于將所有…

java 修飾符默認_Java和C#默認訪問修飾符

C#中&#xff1a;針對下面幾種類型內部成員的訪問修飾符&#xff1a;enum的默認訪問修飾符&#xff1a;public。class的默認為private。interface默認為public。struct默認為private。其中&#xff1a;public可以被任意存取&#xff1b;protected只可以被本類和其繼承子類存取&…

JavaScript中帶有示例的Math.abs()方法

JavaScript | Math.abs()方法 (JavaScript | Math.abs() Method) Math operations in JavaScript are handled using functions of math library in JavaScript. In this tutorial on Math.abs() method, we will learn about the abs() method and its working with examples.…

人臉識別python face_recognize_python2.7使用face_recognition做人臉識別

偶然看到一篇文章&#xff0c;說是可以實時人臉識別&#xff0c;很有興趣就自己按照文章開始動手人臉識別&#xff0c;但是實現過程中遇到了幾個問題這里做個總結&#xff0c;希望可以幫助到大家安裝face_recognition這個之前需要先安裝編譯dlib&#xff0c;如果沒有安裝dlib&a…

c# reverse_清單 .Reverse()方法,以C#為例

c# reverseC&#xff03;List <T> .Reverse()方法 (C# List<T>.Reverse() Method) List<T>.Reverse() method is used to reverse the all list elements. List <T> .Reverse()方法用于反轉所有列表元素。 Syntax: 句法&#xff1a; void List<T&…

cpuinfo詳解

cat /proc/cpuinfo processor: 23&#xff1a;超線程技術的虛擬邏輯核第24個 ###一般看最后一個0...23 表示24線程 vendor_id: GenuineIntel&#xff1a;CPU制造商cpu family: 6&#xff1a;CPU產品系列代號model: 44&#xff1a;CPU屬于其系列中的哪一代號model name: Intel…

jvm延遲偏向_用于偏向硬幣翻轉模擬的Python程序

jvm延遲偏向Here, we will be simulating the occurrence coin face i.e. H - HEAD, T - TAIL. Simply we are going to use an inbuilt library called as random to call a random value from given set and thereby we can stimulate the occurrence value by storing the o…

java項目沒有bin_WebAPI項目似乎沒有將轉換后的web.config發布到bin文件夾?

我很擅長.NET配置轉換 . 我現在將它們放在用于數據使用的類庫和WPF應用程序上 .但是&#xff0c;當我嘗試使用ASP.NET WebAPI項目進行設置時&#xff0c;似乎發生了一些奇怪的事情 .配置文件永遠不會顯示在我的bin目錄中&#xff0c;因此web.config始終顯示為預先形成的配置文件…

opengl es的射線拾取

2019獨角獸企業重金招聘Python工程師標準>>> 在opengl中關于拾取有封裝好的選擇模式&#xff0c;名字棧&#xff0c;命中記錄&#xff0c;實現拾取的功能&#xff0c;相對容易一些。但是到了opengl es里面就比較倒霉了&#xff0c;因為opengl es是opengl的簡化版&am…

java timezone_Java TimeZone useDaylightTime()方法與示例

java timezoneTimeZone類useDaylightTime()方法 (TimeZone Class useDaylightTime() method) useDaylightTime() method is available in java.util package. useDaylightTime()方法在java.util包中可用。 useDaylightTime() method is used to check whether this time zone u…

視覺學習(4) —— 添加地址傳遞數據

Modbus Slave 選擇一個地址右鍵&#xff0c;選擇發送的數據類型 視覺軟件 一、添加地址 當地址為100時&#xff0c;先將首地址改為100&#xff0c;第0個地址為100&#xff0c;第1個地址為101&#xff0c;往后累加 若想使用100—150的地址&#xff0c;即首地址為100&#xff…

某個JAVA類斷點無效_解決eclipse中斷點調試不起作用的問題

最近幾天&#xff0c;遇到了一個問題&#xff0c;就是在eclipse中進行斷點調試程序到時候&#xff0c;跟蹤不到我設置的斷點。困惑了很久&#xff0c;在網上也查閱了很多資料&#xff0c;都沒能解決我的問題。今天早上&#xff0c;我試著把eclipse的工作空間重新換了一個&#…

jquery中阻止事件冒泡的方法

2019獨角獸企業重金招聘Python工程師標準>>> 根據《jquery基礎教程》 第一種方法&#xff1a;判斷事件的“直接”目標是否是自身&#xff0c;如果不是自身&#xff0c;不予處理 $(div.outter).click(function(event) {if (event.target this) {$(p).css(color, red…

java swing 組織機構_課內資源 - 基于Java Swing的小型社團成員管理系統

一、需求分析1.1 個人信息學號、姓名、性別、年級、系別、專業、出生日期、聯系方式、個性簽名、地址、照片。1.2 基本功能要求管理員信息管理登錄、注銷功能修改密碼功能部落成員信息管理添加成員刪除成員修改成員信息按條件查找篩選成員1.3 高級特性管理員權限管理成員信息包…

Java System類loadLibrary()方法與示例

系統類loadLibrary()方法 (System class loadLibrary() method) loadLibrary() method is available in java.lang package. loadLibrary()方法在java.lang包中可用。 loadLibrary() method is used to load the library with the given parameter named library_name(library …

CCF201509-2 日期計算(100分)

試題編號&#xff1a; 201509-2 試題名稱&#xff1a; 日期計算 時間限制&#xff1a; 1.0s 內存限制&#xff1a; 256.0MB 問題描述&#xff1a; 問題描述給定一個年份y和一個整數d&#xff0c;問這一年的第d天是幾月幾日&#xff1f;注意閏年的2月有29天。滿足下面條件之一的…

Java StringBuilder trimToSize()方法與示例

StringBuilder類trimToSize()方法 (StringBuilder Class trimToSize() method) trimToSize() method is available in java.lang package. trimToSize()方法在java.lang包中可用。 trimToSize() method is used to minimize storage used for the characters (i.e. if the init…

第一百四十一節,JavaScript,封裝庫--DOM加載

JavaScript&#xff0c;封裝庫--DOM加載 DOM加載&#xff0c;跨瀏覽器封裝DOM加載&#xff0c;當網頁文檔結構加載完畢后執行函數&#xff0c;不等待圖片音頻視頻等文件加載完畢 /** dom_jia_zai()函數&#xff0c;DOM頁面加載函數&#xff0c;等待頁面結構加載完畢后就執行函數…

java 使用接口便于維護程序_Java初學——面向對象接口的應用

一、接口1.什么是接口接口是比抽象類更抽象的定義&#xff0c;接口不可以被實例化 實現類必須實現接口的所有方法 實現類可以實現多個接口 、多個接口使用逗號隔開 接口中的變量都是靜態常量(public static final) 程序設計時面向接口的約定而不考慮具體實現 。2.為什么使用接口…