我有一个 .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>
我想使用 MATLAB 访问
DataValues
和 ROIPoints
。我发现提取
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),我无法单独提取它们。有小费吗?
最佳答案
请在 matlab central 上查看 xml_read。它将读取您的 xml 并将其作为结构输出(按照您的 xml 树)。但是对于较大的 XML 可能会很慢。