1

多くの 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)));
4

1 に答える 1

1

セル配列を適切に使用していません。彼らが何であるか知っていますか?詳細については、 Matlabと入力help cellしてください。

基本的に、ここで行われているのは、 という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
于 2012-08-30T06:37:53.870 に答える