導航:首頁 > 編程語言 > jaxbxmltojava

jaxbxmltojava

發布時間:2023-09-29 05:01:08

① 如何根據xml和schema文件生成java類(用程序實現)!

驗證應該好寫吧,主要是解析xml

可以使用工具包dom4j

類似例子

dom4j參見http://javacrazyer.iteye.com/blog/727298

publicstaticvoidreadXML()throwsDocumentException{
SAXReadersr=newSAXReader();//獲取讀取xml的對象。
Documentdoc=sr.read("src/com/pzr/test//test.xml");//得到xml所在位置。然後開始讀取。並將數據放入doc中
Elementel_root=doc.getRootElement();//向外取數據,獲取xml的根節點。
Iteratorit=el_root.elementIterator();//從根節點下依次遍歷,獲取根節點下所有子節點

while(it.hasNext()){//遍歷該子節點
Objecto=it.next();//再獲取該子節點下的子節點
Elementel_row=(Element)o;
Strings=el_row.getText();
Iteratorit_row=el_row.elementIterator();
while(it_row.hasNext()){//遍歷節點
Elementel_ename=(Element)it_row.next();//獲取該節點下的所有數據。
System.out.println(el_ename.getText());
}
}
}

② 如何將xml文件轉變成java對象

首先 java是面向對象的編程語言,所以你要理解面向對象的思想。在這個前提下我們可以理解 文件 本身就是java的對象File,而xml只是File類中對象的一種實例。你可以創建一個File 把你的xml的路徑傳入這個對象的有參構造,這樣就實例化了一個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怎樣讀取解析xml文件中的數據轉換成java對象

SAXBuildersb=newSAXBuilder();//建立構造器
Documentdoc;
try{
doc=sb.build("E:/userinfod301.xml");//讀入指定文件
Elementroot=doc.getRootElement();//獲得根節點
Listlist=root.getChildren();//將根節點下的所有ObjectInstance子節點放入List中
for(inti=0;i<list.size();i++){
List<Element>listNext=((Element)list.get(i)).getChildren();//將ObjectInstance節點下的所有Attribute放入List中
for(intj=0;j<listNext.size();j++){
Elementsub=(Element)listNext.get(j);//取得節點實例
System.out.println(sub.getAttribute("name").getValue());
System.out.println(sub.getText());
}
}
}catch(Exceptione){
e.printStackTrace();
}

⑤ 如何把xml內容轉換為java格式

使用XStream完成 java 類與 XML 互換。
下面代碼實現了以下4種基本功能:
1. object類型轉換為xml類型,在控制台列印
2. xml類型轉換為object類型,在控制台列印
3. 將object類型轉換為xml類型,並寫入XML文件
4. 讀取XML文件,載入進相應Object類型
====================================================
1。載入 XStream 需要的jar包 xstream-1.4.2.jar
xpp3_min-1.1.4c.jar
xmlpull-1.1.3.1.jar

2。創建實體類User.java
package com.entity;
/**
* 實體類
*/
public class User {
private String userName;
private String passWord;
private String registeredTime;
public User() { }
public User(String userName, String passWord, String registeredTime) {
this.userName = userName;
this.passWord = passWord;
this.registeredTime = registeredTime;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getRegisteredTime() {
return registeredTime;
}
public void setRegisteredTime(String registeredTime) {
this.registeredTime = registeredTime;
}
}

3。編寫功能實現類
package com.switcher;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.entity.User;
import com.thoughtworks.xstream.XStream;
/**
*
* 使用 XStream不用任何映射就能實現多數 Java 對象的序列化。
* 在生成的 XML中對象名變成了元素名,類中的字元串組成了 XML中的元素內容。
* 使用 XStream 序列化的類不需要實現 Serializable 介面。
* XStream 是一種序列化工具而不是數據綁定工具
* 不能從XML 或者 XML Schema Definition (XSD) 文件生成類。
*/
public class SwitchXML {
/*
* XStream 不關心序列化/逆序列化的類的欄位的可見性。
* 序列化/逆序列化類的欄位不需要 getter 和 setter 方法。
* 序列化/逆序列化的類不需要有默認構造函數。
*/
private XStream xStream = new XStream();
private String xmlPath = "D:/userdata.xml";
// 1. obj -> xml(object類型轉換為xml類型)
public String printXML(User user) {
System.out.println("obj -> xml");
String xml = xStream.toXML(user);
System.out.println(xml);
return xml;
}
// 2. xml->obj(xml類型轉換為object類型,並列印)
public void printObj(String xml) {
System.out.println("xml -> obj");
User u = (User) xStream.fromXML(xml);
System.out.println(u.getUserName() + " " + u.getPassWord() + " " + u.getRegisteredTime());
}
// 3. 將object類型轉換為xml類型,並寫入XML文件(其他格式也可以,比如txt文件)
public void writerXML(User user) {
try {
FileOutputStream fs = new FileOutputStream(xmlPath);
xStream.toXML(user, fs);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
// 4. 讀取XML文件,載入進相應Object類型
public void readerXML() {
User user = new User();
FileInputStream fis = null;
try {
fis = new FileInputStream(xmlPath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
xStream.fromXML(fis, user);
// 列印對象信息
System.out.println(user.toString());
// 列印對象的屬性值
System.out.println(user.getUserName() + "-" + user.getPassWord() + "-"
+ user.getRegisteredTime());
}
public static void main(String[] args) {
// 用戶名
String username = "admin";
// 密碼
String password = "admin";
// 注冊時間
Date now = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String registeredtime = format.format(now);
User user = new User(username, password, registeredtime);
SwitchXML switchXML = new SwitchXML();
// 1. object類型轉換為xml類型,在控制台列印
String xml = switchXML.printXML(user);
System.out.println("---------------------");
// 2. xml類型轉換為object類型,在控制台列印
switchXML.printObj(xml);
System.out.println("---------------------");
// 3. 將object類型轉換為xml類型,並寫入XML文件
switchXML.writerXML(user);
System.out.println("---------------------");
// 4. 讀取XML文件,載入進相應Object類型
switchXML.readerXML();
}
}

閱讀全文

與jaxbxmltojava相關的資料

熱點內容
程序員投行 瀏覽:313
java多線程讀取文件 瀏覽:145
香港外貿伺服器有什麼好處 瀏覽:612
鄧倫參加密室大逃脫結果變成團寵 瀏覽:847
購買文件伺服器怎麼選擇 瀏覽:720
空調壓縮機高壓報警 瀏覽:498
u盤數控程序放哪個文件夾 瀏覽:853
python模擬微信登錄其他APP 瀏覽:301
綁扎鋼筋加密區規范 瀏覽:671
怎麼更換手機壁紙安卓 瀏覽:808
閑魚app賣手機怎麼走驗機 瀏覽:821
安卓三個按鍵音怎麼關閉 瀏覽:64
esp8266手機app源碼 瀏覽:713
伺服器如何建立多個站點 瀏覽:151
加密狗可以在筆記本上做賬嗎 瀏覽:888
學生雲伺服器推薦 瀏覽:509
android銀行卡快捷支付 瀏覽:828
海口手機直播系統源碼 瀏覽:416
怎麼給加密貨幣加圖標 瀏覽:999
phpheader編碼 瀏覽:766