【问题标题】:Accessing data from .XML file with Matlab使用 Matlab 从 .XML 文件中访问数据
【发布时间】:2013-08-03 15:36:02
【问题描述】:

我有一个 .XML 文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Comments</key>
<string></string>
<key>DataSummary</key>
<dict>
    <key>AreaCM2</key>
    <real>2.77</real>
    <key>Dev</key>
    <real>9.48</real>
</dict>
<key>DataValues</key>
<array>
    <real>81</real>
    <real>85</real>
</array>
<key>ROIPoints</key>
<array>
    <string>{65.7414, 58.2929}</string>
    <string>{65.7388, 58.4421}</string>
</array>
</dict>
</plist>

我想访问DataValuesROIPoints使用 MATLAB

我发现了一种非常牵强的提取ROIPoints 的方法,其工作原理如下:

DOMnode = xmlread(pathofxmlfile);
i       = DOMnode.getDocumentElement;
f       = char(i.getTextContent);

f 是一个包含所有“文本”内容的字符串:

f = CommentsDataSummaryAreaCM22.77Dev9.48DataValues8185ROIPoints**{65.7414, 58.2929}{65.7388, 58.4421}

由于ROIPoints 包含在大括号中,我可以操作字符串以提取它们。

不幸的是,DataValues 被水平连接 (8185),我无法单独提取它们。

有什么建议吗?

【问题讨论】:

  • 看起来你可以使用 xpath:mathworks.com/matlabcentral/fileexchange/… 做一个稍微高级一点的版本,这样你就可以查询到 ROIPoints (例如 //key[ROIPoints]/数组,但我不是 100% 使用 xpath 语法)

标签: xml matlab extract


【解决方案1】:

请在 matlab 中心查看 xml_read。它将读取您的 xml 并将其作为结构输出(遵循您的 xml 树)。不过对于较大的 XML,它可能会很慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多