2011-11-15 51 views
3

在MATLAB中,我加載了一個XML文件docNode = xmlread('stuff.xml');stuff.xml如下:MATLAB:訪問XML對象

<?xml version="1.0"?> 
<rss version="2.0" xmlns:g="http://somesite.com"> 
    <channel> 
     <title>Blah</title> 
     <link>http://www.blah.com</link> 
     <description>BLAH.COM </description> 
     <item>  
      <link>http://www.blah.com/page</link> 
     </item> 
    </channel> 
</rss> 

我想檢索字符串中<link>但它被證明是相當棘手..我讀這個博客http://blogs.mathworks.com/desktop/2010/11/01/xml-and-matlab-navigating-a-tree/,但我仍然無法看着辦吧!有人可以在如何訪問<link>? TIA!

回答

3

這是做你所需要的嗎?

>> docNode = xmlread('stuff.xml'); 
>> l = docNode.getElementsByTagName('link'); 
>> char(l.item(0).getFirstChild.getData) 
ans = 
http://www.blah.com 
>> char(l.item(1).getFirstChild.getData) 
ans = 
http://www.blah.com/page 

PS你有stuff.xml錯誤 - 它應該是</channel>,不</<channel>


編輯:循環直接通過每一個環節,你可以使用l.getLength

for i = 0:(l.getLength - 1) % 0-based indexing, not 1-based like MATLAB arrays 
    char(l.item(i).getFirstChild.getData) 
end 

ans = 
http://www.blah.com 
ans = 
http://www.blah.com/page 
+0

嘿山姆,是它。非常感謝!如果有多個'',你如何循環它們? – musicliftsme

+0

放棄問題。發佈後不久我就明白了。我想知道爲什麼你會首先獲得'link'元素,而不是串行訪問它。但所有的作品。 – musicliftsme