[英]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.index
盡管它們位於文件夾中。
那么,甚至有可能僅在Matlab中執行整個JAXB事情嗎? 還是我首先必須在eclipse中包裝一些類才能將整個內容導出為.jar文件,然后將其導入到Matlab中?
如果可能,我會犯哪些錯誤? 或會有什么影響? eclipse中較新的Java版本,Matlab中的動態Java路徑?
如果您使用Java 8並且不需要xml驗證,則將.xml
源轉換為Java對象非常容易:
MyClass myObject = JAXB.unmarshal(input, MyClass.class);
在這里, input
是InputStream
, File
, URL
等,指向.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.