在matlab中为多个读取xml文件创建DOM对象数组

在matlab中为多个读取xml文件创建DOM对象数组,matlab,Matlab,我有许多XML文件,它们的文件名如下: [FileName,PathName] = uigetfile('*.xml','MultiSelect','on'); 我想使用以下代码读取这些文件: for i=1:length(fullfile(FileName)) xtree(i) = xmlread(char(fullfile(FileName(i)))); 但我犯了个错误。它适用于单个XML文件: xtree = xmlread(char(fullfile(FileName)))

我有许多XML文件,它们的文件名如下:

[FileName,PathName] = uigetfile('*.xml','MultiSelect','on');
我想使用以下代码读取这些文件:

for i=1:length(fullfile(FileName)) 
    xtree(i) = xmlread(char(fullfile(FileName(i))));
但我犯了个错误。它适用于单个XML文件:

xtree = xmlread(char(fullfile(FileName)));

您没有正确使用单元格数组。你知道它们是什么吗?在Matlab中键入
帮助单元格
,以了解更多信息

基本上,这里的情况是,
uigetfile
输出一个名为
FileName
的文件名单元格数组。通过当前大括号索引(
{}
)访问每个文件名

类似地,每个节点都是一个特殊的对象,普通Marlab数组无法正确捕获。最好也将
xtree
定义为一个单元格数组,并用大括号再次分配
xmlread
的输出

另外:在运行时读取用户输入的文件时,最好总是全面检查错误

总结:

[FileName,PathName] = uigetfile('*.m','MultiSelect','on');

if isequal(FileName,0) || isequal(PathName,0)
    error('Cancel pressed.');

else
    xtree = cell(size(FileName));
    for i=1:numel(FileName)
        try
            xtree{i} = xmlread(fullfile([PathName FileName{i}]));

        catch ME
            %# handle error
        end
    end

end

您没有正确使用单元格数组。你知道它们是什么吗?在Matlab中键入
帮助单元格
,以了解更多信息

基本上,这里的情况是,
uigetfile
输出一个名为
FileName
的文件名单元格数组。通过当前大括号索引(
{}
)访问每个文件名

类似地,每个节点都是一个特殊的对象,普通Marlab数组无法正确捕获。最好也将
xtree
定义为一个单元格数组,并用大括号再次分配
xmlread
的输出

另外:在运行时读取用户输入的文件时,最好总是全面检查错误

总结:

[FileName,PathName] = uigetfile('*.m','MultiSelect','on');

if isequal(FileName,0) || isequal(PathName,0)
    error('Cancel pressed.');

else
    xtree = cell(size(FileName));
    for i=1:numel(FileName)
        try
            xtree{i} = xmlread(fullfile([PathName FileName{i}]));

        catch ME
            %# handle error
        end
    end

end