MATLAB:访问 XML 对象

发布于 2024-12-15 16:22:39 字数 726 浏览 0 评论 0原文

在 MATLAB 中,我加载一个 XML 文件 docNode = xmlread('stuff.xml');stuff.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>

我正在尝试在 中检索该字符串,但事实证明它非常棘手..我正在阅读此博客http://blogs.mathworks.com/desktop/2010/11/01/xml-and-matlab-navigating-a-tree/但我仍然不明白!有人可以插话如何访问 吗?蒂亚!

In MATLAB, I load an XML file docNode = xmlread('stuff.xml');. stuff.xml is the following:

<?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>

I'm trying to retrieve that string in <link> but it is proving to be quite tricky.. I'm reading this blog http://blogs.mathworks.com/desktop/2010/11/01/xml-and-matlab-navigating-a-tree/ but I still can't figure it out! Can someone chime in on how to get access to <link>? TIA!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谎言 2024-12-22 16:22:39

这能满足您的需要吗?

>> 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 中有错误 - 它应该是 ,而不是


编辑:要直接循环每个链接,您可以使用 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

Does this do what you need?

>> 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 you have an error in stuff.xml - it should be </channel>, not </<channel>.


Edit: To loop directly through each link, you can use 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文