1. 程式人生 > >【XML】將String格式的XML檔案轉化成JAVA實體類

【XML】將String格式的XML檔案轉化成JAVA實體類

1.問題:

如何將String型別的XML轉化成JAVA實體類?

2.原始碼:

public class TestXML {
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        String xmlStr="<object>\n" +
                "  <int name=\"start\">1</int>\n" +
                "  <string name=\"order\">receiveDate</string>\n"
+ " <int name=\"desc\">1</int>\n" + " <int name=\"fid\">1</int>\n" + " <int name=\"norefreshSid\">0</int>\n" + " <int name=\"total\">20</int>\n" + " <string name=\"sessionEnable\">0</string>\n"
+ "</object>"; System.out.println(xmlStr); /*JAXBContext應用入口,用於xml和java的繫結*/ JAXBContext context=null; try { context=JAXBContext.newInstance(Objectz.class); /*Unmarshaller介面,將xml反序列化為java物件*/ Unmarshaller unmarshaller= context.createUnmarshaller(); System.out
.println(unmarshaller); StringReader stringReader=new StringReader(xmlStr); System.out.println(stringReader); System.out.println("unmarshaller:"+unmarshaller.unmarshal(stringReader)); Objectz objectz=(Objectz)unmarshaller.unmarshal(stringReader); System.out.println(objectz); } catch (JAXBException e) { e.printStackTrace(); } } }

3.截圖:

這裡寫圖片描述

4.總結:

這裡說,不需要元素,但是卻獲得了本地卻獲得了object;請問怎麼解決這個異常?

附:報錯程式碼:

javax.xml.bind.UnmarshalException: 意外的元素 (uri:"", local:"object")。所需元素為(none)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:726)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:247)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:242)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:109)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1131)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:556)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:538)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:153)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:380)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:614)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3135)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:880)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:214)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:214)
    at com.fxrj.email.test.TestXML.main(TestXML.java:42)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

相關推薦

XMLString格式XML檔案化成JAVA實體

1.問題: 如何將String型別的XML轉化成JAVA實體類? 2.原始碼: public class TestXML { @SuppressWarnings("unchecked") public static void main(

Ubunturoot許可權的檔案改為使用者許可權

大家在使用ubuntu的時候有沒有遇到下面的情況比如我用VSCode寫html儲存的時候會提示我許可權的問題,讓我用更高的許可權來儲存這個檔案,遇到這個問題的主要原因其實就是因為當前資料夾的許可權為root許可權。而VSCode執行使用的是使用者許可權。 要解決這個問題我們可以對vscode

Pythonpython的py檔案編譯成保密的pyc檔案

由於python程式的py檔案很容易洩露原始碼,所以python可以編譯成保密的pyc檔案。 python的pyc檔案是一種二進位制檔案,py檔案變成pyc檔案後,載入的速度有所提高,而且pyc是

經驗分享:如何PDF格式檔案進行翻譯

在我們平常工作中,如果在處理PDF這種格式檔案的時候,發現檔案中的內容多數為外語(比如英語),大家是怎麼解決的呢?可能大部分人會選擇將檔案裡面的內容複製到翻譯軟體中,那樣未免太麻煩了吧。在這裡小編將教大家一種比較方便的方法,想要了解的可以繼續往下看。 1、可以在自己的電腦上安裝一款軟體,可以進入到百度瀏覽器

C++使用libxml解析XML檔案

1.     構建xmlDocPtr物件,xmlParseMemory(str,str.len) 字串轉為XML文件 , 從檔案讀取內容構建xmlReadFile(szDocName,"GB2312",XML_PARSE_RECOVER) 2.     xmlDocG

WebService第二章、XML檔案名稱空間以及約束

本章主要介紹一下XML檔案的名稱空間,為以後學習WebService打下基礎。 1、瘋狂XML講義中對XML文件的分類。       1. 格式不良好(malformed)的XML文件。例如:完全沒有遵守XML規則,亂寫!標籤不成對,反正不是個正經的XML文件。      

OpenCV影象資料由YUV格式轉換成JPG格式直接使用,而不儲存成檔案

解決方法 使用OpenCV影象編碼和解碼函式:imencode、imdecode std::vector data_encode; imencode(“.png”, img_encode, dat

MAVENmaven系列--pom.xml標簽詳解

als lex script 是否 mod resource ica 資源 bugzilla pom文件作為MAVEN中重要的配置文件,對於它的配置是相當重要。文件中包含了開發者需遵循的規則、缺陷管理系統、組織、licenses、項目信息、項目依賴性等。下面將重點介紹一下該

29WEB安全學習----XML注入

一、XML基礎 簡介: XML:可擴充套件標記語言。XML被設計用來是傳輸和儲存資料,XML是一種“元標記”語言,開發者可以根據自己的需要建立標記的名稱。 XML結構 XML是一種樹結構,從“根部”開始,然後擴充套件到“枝葉”,XML文件必須有根元素。 <?x

linuxubuntu終端輸出為檔案

方案一: tee tee --help 用法:tee [選項]… [檔案]… 將標準輸入複製到每個指定檔案,並顯示到標準輸出。 -a, --append 內容追加到給定的檔案而非覆蓋 -i, --ignore-interrupts 忽略中斷訊號 -p diagnose

儲存maven的pom.xml標籤的xsi:schemaLocation處報錯

maven裝X的原因是 maven對下載不下來的jar檔案會生成一個 *.lastUpdated  檔案 ,不將*.lastUpdated檔案幹掉,它是不會給你重新下載jar,  so   將   *

Eclipse安裝html/jsp/xml外掛

1.開啟eclipse中的help————>Install New Software 2.點選Add按鈕,然後彈出一個框,第一個文字框可以隨便寫,第二個寫(下載外掛的網址): http://d

bugint檔案讀入vector

ifstream data_file("data.txt"); //text file containing data istream_iterator<int> start(data_file), eos; vector<int> data(start, eos);

實用巧用For xml 生成HTML程式碼

可以利用SQL的For xml直接生成HTML結構,比如我想生成如下結構: <li> <img src="..."/> <input type="hidden" id="sourcePath" value="..." /> <br/&g

MAVENmaven系列--pom.xml標籤詳解

pom檔案作為MAVEN中重要的配置檔案,對於它的配置是相當重要。檔案中包含了開發者需遵循的規則、缺陷管理系統、組織、licenses、專案資訊、專案依賴性等。下面將重點介紹一下該檔案的基本組成與功能。 標籤預覽 <project> <modelVersion>4.0.0<

SSDWIDER人臉資料格式轉換為VOC格式的工具

【2018.05.21更新】------------訓練的時候發現loss正常下降,可是驗證階段的eval一直很低很低。我猜測資料集問題,諮詢了一下後,確認是這個問題。WIDER裡面有很多模糊不清的超小臉標註導致的。所以轉換程式碼我增加過濾超小臉的功能。-----------

C++使用sstream標頭檔案進行格式轉換

sstresam是C++中的一個頭檔案,提供了比ANSI C的<stdio.h>更高階的一些功能,即單純性、型別安全和可擴充套件性。本文討論如何使用裡面的物件安全的進行型別轉換。 一、基本用法 1. 簡介 C++引入了ostri

C++txt檔案中的內容讀入動態二維陣列內

這篇主要記錄一下使用C++中的動態二維陣列來儲存讀入的txt文件中的資料 //設txt中的資料有rows行和cols列 //使用new新建一個rows行,cols列的二維陣列fstream fin

轉載Ubuntu16.04 中gedit在僅顯示一個檔案時顯示檔名tab

Ubuntu16.04中gedit在僅顯示一個檔案時,不顯示檔案tab,也看不到檔名。可以修改gedit的設定,使之始終顯示檔案tab,方法如下。在終端中輸入gsettings set org.gnome.gedit.preferences.ui show-tabs-mode

SpringJDBC事務管理XML配置

將spring事務管理與spirng-mybatis分離開了: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/bean