2012-06-20 58 views
1

我嘗試使用此:xml2struct無法訪問元素(一個或多個)

xml2struct

當我使用這個XML:

<XMLname attrib1="Some value"> 
    <Element>Some text</Element> 
    <DifferentElement attrib2="2">Some more text</DifferentElement> 
    <DifferentElement attrib3="2" attrib4="1">Even more text</DifferentElement> 
</XMLname> 

我可以創建一個結構:

test = xml2struct('C:\bla\bla.xml'); 

(測試它與類(測試))

它看起來像這樣:

測試=

 Name: 'XMLname' 
Attributes: [1x1 struct] 
     Data: '' 
    Children: [1x7 struct] 

但我不能訪問:

test.XMLname.Element.Text 

我得到:

???引用不存在的字段'XMLname'。

任何想法?

回答

1

剛在R2010b中,它工作正常

>> data=xml2struct('bla.xml') 
data = 
    XMLname: [1x1 struct] 

>> data.XMLname 
ans = 
      Element: [1x1 struct] 
    DifferentElement: {[1x1 struct] [1x1 struct]} 
      Attributes: [1x1 struct] 

是否有可能您在MATLAB的路徑有xml2struct舊版本的地方?確保which xml2struct給你的路徑你期望

+0

我目前使用R2008a。這可能是問題嗎? – cs0815

+0

這是我現在能想到的唯一原因。但是你可以嘗試使用你所擁有的struct的'Children'字段來訪問你需要的數據。 –

+0

引用答案。我有同樣的問題,我已經解決它從http://www.mathworks.com/matlabcentral/fileexchange/28518-xml2struct/content/xml2struct.m – giuseppe

1

當我看到你的問題,我看到這樣

test = 

     Name: 'XMLname' 
Attributes: [1x1 struct] 
     Data: '' 
    Children: [1x7 struct] 

,並試圖結構讀取結構的不存在的成分

test.XMLname.Element.Text 

即結構test沒有名爲XMLname的組件。

我錯過了一些顯而易見的東西嗎?

+0

下載新版本不,你沒有。看起來好像xml2struct不能正確轉換東西。我相信這可能與我的matlab版本有關。 – cs0815