Matab 读取修改 XML
生活随笔
收集整理的這篇文章主要介紹了
Matab 读取修改 XML
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
項目需要在matlab中讀取多個點數據文件,為了更好管理多個文件,定義了一個XML文件。格式如下:
<?xml version="1.0" encoding="utf-8"?> <scan><name>分三次掃描</name><robot>機器人</robot><workpiece>葉片</workpiece><data angle="30" md5="a41d85fb08a42c7c8f512f7a1139a112" src="html\test.html"/><data angle="40" md5="58dcc9450ddafcee5be2f9fef7b070e3" src="html\xml_tutorial_script.html"/><data angle="60" md5="016946d9cc65deb9dcdf0fca3520e57f" src="html\xml_tutorial_script_01.png"/></scan>每個data標簽就是一個掃描的點云文件。md5屬性用于驗證文件是否被篡改。
Matlab自帶的XML函數比較麻煩,使用了一個第三方xml_read/xml_write。地址(https://ww2.mathworks.cn/matlabcentral/mlc-downloads/downloads/submissions/12907/versions/14/download/zip/xml_io_tools_2010_11_05.zip)
? scaninfo = xml_read('\scan.xml'); disp(['Scan Name-:',scaninfo.name]);//遍歷data元素 datas=size(scaninfo.data); for n=1:datassprintf('Current is %d ',n)//判斷結構體是否存在angle字段if isfield(scaninfo.data(n).ATTRIBUTE,'angle') disp(scaninfo.data(n).ATTRIBUTE.angle); endif isfield(scaninfo.data(n).ATTRIBUTE,'md5') disp(scaninfo.data(n).ATTRIBUTE.md5); endif isfield(scaninfo.data(n).ATTRIBUTE,'src') fileName=(scaninfo.data(n).ATTRIBUTE.src); DataHash(fileName,'MD5','file')//修改屬性值scaninfo.data(n).ATTRIBUTE.md5 = DataHash(fileName,'MD5','file')endend//新增節點 newNode=struct; newNode.CONTENT='That''s all!'; newNode.ATTRIBUTE.angle='2:00'; newNode.ATTRIBUTE.src='test.jpg; scaninfo.data(end+1)=newNode;wPref.StructItem = false xml_write('regular_output.xml',scaninfo,'scan',wPref)??
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Matab 读取修改 XML的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Node断点下载
- 下一篇: JSON动态解析()