簡體   English   中英

在Matlab中解析xml(使用JAXB)

[英]Parsing xml in Matlab (using JAXB)

我正在嘗試基於Matlab中的xsd解析xml文件。

如該線程中的建議, MATLAB用XSD解析和存儲XML ,我試圖使用JAXB來做到這一點,但是我陷入了困境。

我能夠通過創建代表我的xsd級別的.java類文件

xjc myFile.xsd –d myDirectory (在Windows命令行中)。

我已經閱讀了另一個線程中的鏈接文章,但是現在我不知道如何繼續。

在Matlab中繼續學習之前,下一步要做什么?

提前致謝

編輯:

Matlab版本為2010b(Java 1.6.0_17)

編輯2:

我現在嘗試JAXB.unmarshal(input, MyClass.class)因為我設法讓MyClass.class通過使用日食JAXB項目(僅使用上述命令行中輸入剛剛給我的MyClass.java文件)。 但是Matlab找不到方法JAXB.unmarshal(可能是因為matlab的Java版本?)。
在將我的包所在的文件夾( D:\\PathToMyPackage\\my\\Package\\MyClass.class )添加到Matlab javaaddpath('D:\\PathToMyPackage')的動態Java路徑之后,並導入“ my.package”后,我還在嘗試:
jc = JAXBContext.newInstance('my.package')
jc = JAXBContext.newInstance('ObjectFactory.class')
jc = JAXBContext.newInstance('my.package.ObjectFactory.class')

但是每次我得到一個JAXB Exception例如。

javax.xml.bind.JAXBException:“ my.package”不包含ObjectFactory.class或jaxb.in​​dex

盡管它們位於文件夾中。

那么,甚至有可能僅在Matlab中執行整個JAXB事情嗎? 還是我首先必須在eclipse中包裝一些類才能將整個內容導出為.jar文件,然后將其導入到Matlab中?

如果可能,我會犯哪些錯誤? 或會有什么影響? eclipse中較新的Java版本,Matlab中的動態Java路徑?

如果您使用Java 8並且不需要xml驗證,則將.xml源轉換為Java對象非常容易:

MyClass myObject = JAXB.unmarshal(input, MyClass.class);

在這里, inputInputStreamFileURL等,指向.xml源, MyClass是代表根元素的類-一個具有@XmlRootElement批注的類。 可以在xjc生成的類中找到它。

查看更多: https : //docs.oracle.com/javase/8/docs/api/javax/xml/bind/JAXB.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM