0

我有一组扩展名为 .dat 的 ascii 文件,我需要将它们转换为一组 .xml 文件。

无论如何用Matlab或任何其他软件来做到这一点。

这是我需要转换的文件之一:

https://docs.google.com/open?id=0B1GI9KuZUKX3TDFCZDVTbzdINUE

4

2 回答 2

1

我过去使用过XML4MAT。它将处理进出 XML 格式的数据转换,但并不能完全处理实际读取和写入 XML 文件,因此您必须添加一些胶水代码。顺序是:

  1. 将 dat 文件读入 MATLAB 中的一个变量(这里我使用变量名 Data)。看起来您的文件本质上是一个数字表,所以这很容易。
  2. 使用 DumpToXML.m 和 LoadFromXML.m 作为您将单独下载的 XML4MAT 包的粘合代码。

    % function DumpToXML(XMLFileName, Data)
    function DumpToXML(XMLFileName, Data)
    
        % Generate the text of the XML file.
        XMLData = ['<root>' 10];
        XMLData = [XMLData mat2xml(Data, 'Data', 1)];
        XMLData = [XMLData '</root>' 0];
    
        % Now output the data.
        fid = fopen(XMLFileName, 'w');
        fprintf(fid, '%s', XMLData);
        fclose(fid);
    end
    
    
    % function LoadFromXML(XMLFileName)
    function Data = LoadFromXML(XMLFileName)
    
        % Open the XML file.
        fid = fopen(XMLFileName, 'r');
        if(fid <= 0)
            error(['Cannot open XML file ' XMLFileName]);
        end
        XMLData = fscanf(fid, '%c', inf);
        fclose(fid);
    
        % Now get the Data tag.
        DataStartIndex = findstr(XMLData, '<Data');
        % Now find the end.
        DataEndIndex = findstr(XMLData, '</Data>');
    
        % Extract the strings for this two variable from the string
        % containing the loaded XML file.
        XMLData = XMLData(DataStartIndex:DataEndIndex+6);
    
        % And turn it back into a variable.
        Data = xml2mat(XMLData);
    end
    
于 2014-03-05T19:33:29.670 回答
0

我不认为 Matlab 是首选的武器。

我提倡使用 Python,因为有很好的 XML 包,例如 lxml。您应该能够使用 open() 和 readlines() 轻松解析 dat 文件。

于 2012-10-04T17:24:54.947 回答