我有一组扩展名为 .dat 的 ascii 文件,我需要将它们转换为一组 .xml 文件。
无论如何用Matlab或任何其他软件来做到这一点。
这是我需要转换的文件之一:
https://docs.google.com/open?id=0B1GI9KuZUKX3TDFCZDVTbzdINUE
我有一组扩展名为 .dat 的 ascii 文件,我需要将它们转换为一组 .xml 文件。
无论如何用Matlab或任何其他软件来做到这一点。
这是我需要转换的文件之一:
https://docs.google.com/open?id=0B1GI9KuZUKX3TDFCZDVTbzdINUE
我过去使用过XML4MAT。它将处理进出 XML 格式的数据转换,但并不能完全处理实际读取和写入 XML 文件,因此您必须添加一些胶水代码。顺序是:
使用 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
我不认为 Matlab 是首选的武器。
我提倡使用 Python,因为有很好的 XML 包,例如 lxml。您应该能够使用 open() 和 readlines() 轻松解析 dat 文件。