错误使用xml文件和Matlab的结构

18视图(30天)
我试图通过Matlab修改xml文件。
为了实现它,我使用 把xml文件转换成一个Matlab和结构 这另一个 拿回的xml文件。
问题是:我遇到一个错误当我试着将Matlab的结构转换为一个xml文件。错误的是:
如果真正的
错误使用xmlwrite(第82行)
Java异常发生:
java.lang.NullPointerException
com.mathworks.xml.XMLUtils.serializeXML (XMLUtils.java: 192)
com.mathworks.xml.XMLUtils.serializeXML (XMLUtils.java: 49)
错误在struct2xml(第79行)
varargout {1} = xmlwrite (docNode);
错误在read_change_timestamps(第5行)
测试。xml= struct2xml(eci);
结束
这与第二个函数“struct2xml”,但我似乎无法理解究竟是什么这个问题。
这是一个xml文件的一个例子,我试图修改:
如果真正的
< ?xml version =“1.0”编码=“utf - 8”独立的=“是的”? >
< eventTrack xmlns =“http://www.egi.com/event_mff”xmlns: xsi =“http://www.w3.org/2001/XMLSchema-instance”>
<名称> ECI TCP / IP 55513 < /名称>
< trackType >机枪兵< / trackType >
<事件>
< beginTime > 2017 - 04 - 04 - t14:15:43.529000 + 0 < / beginTime >
<时间> 1000 < /持续时间>
<代码> < /代码>任务
<标记> < /标签>
<描述> < /描述>
< sourceDevice >多口ECI < / sourceDevice >
<键>
<键>
<键码>硬脑膜< /键码>
<数据类型=“短”> 147 < /数据>
< /关键>
< / >键
< /事件>
<事件>
< beginTime > 2017 - 04 - 04 - t14:15:45.979000 + 0 < / beginTime >
<时间> 1000 < /持续时间>
<代码>机枪兵> < /代码
<标记> < /标签>
<描述> < /描述>
< sourceDevice >多口ECI < / sourceDevice >
<键>
<键>
<键码> tria < /键码>
<数据类型=“短”> 1 > < /数据
< /关键>
<键>
<键码> < /键码>代码
<数据类型=“短”> 70 < /数据>
< /关键>
<键>
<键码> < /键码>类型
<数据类型=“短”2 > < /数据>
< /关键>
< / >键
< /事件>
<事件>
< beginTime > 2017 - 04 - 04 - t14:15:46.096000 + 0 < / beginTime >
<时间> 1000 < /持续时间>
ISI <代码> < /代码>
<标记> < /标签>
<描述> < /描述>
< sourceDevice >多口ECI < / sourceDevice >
<键>
<键>
<键码>硬脑膜< /键码>
<数据类型=“短”> 164 < /数据>
< /关键>
< / >键
< /事件>
<事件>
< beginTime > 2017 - 04 - 04 - t14:15:48.830000 + 0 < / beginTime >
<时间> 1000 < /持续时间>
<代码>机枪兵> < /代码
<标记> < /标签>
<描述> < /描述>
< sourceDevice >多口ECI < / sourceDevice >
<键>
<键>
<键码> tria < /键码>
<数据类型=“短”2 > < /数据>
< /关键>
<键>
<键码> < /键码>代码
<数据类型=“短”> 149 < /数据>
< /关键>
<键>
<键码> < /键码>类型
<数据类型=“短”> 1 > < /数据
< /关键>
< / >键
< /事件>
<事件>
< beginTime > 2017 - 04 - 04 - t14:15:48.930000 + 0 < / beginTime >
<时间> 1000 < /持续时间>
ISI <代码> < /代码>
<标记> < /标签>
<描述> < /描述>
< sourceDevice >多口ECI < / sourceDevice >
<键>
<键>
<键码>硬脑膜< /键码>
<数据类型=“短”> 159 < /数据>
< /关键>
< / >键
< /事件>
<事件>
< beginTime > 2017 - 04 - 04 - t14:15:51.580000 + 0 < / beginTime >
<时间> 1000 < /持续时间>
<代码>机枪兵> < /代码
<标记> < /标签>
<描述> < /描述>
< sourceDevice >多口ECI < / sourceDevice >
<键>
<键>
<键码> tria < /键码>
<数据类型=“短”> 3 < /数据>
< /关键>
<键>
<键码> < /键码>代码
<数据类型=“短”> 66 < /数据>
< /关键>
<键>
<键码> < /键码>类型
<数据类型=“短”2 > < /数据>
< /关键>
< / >键
< /事件>
<事件>
< beginTime > 2017 - 04 - 04 - t14:15:51.680000 + 0 < / beginTime >
<时间> 1000 < /持续时间>
ISI <代码> < /代码>
<标记> < /标签>
<描述> < /描述>
< sourceDevice >多口ECI < / sourceDevice >
<键>
<键>
<键码>硬脑膜< /键码>
<数据类型=“短”> 147 < /数据>
< /关键>
< / >键
< /事件>
< / eventTrack >
结束
可能是什么问题?是因为原始xml文件的结构吗?
2的评论
尼科洛Trevisan
尼科洛Trevisan 2017年5月15日
我用Matlab 2016 b。
现在我不想做任何复杂的结构,只是想打开它从xml文件和拿回另一个xml文件。
这是代码:

登录置评。

接受的答案

Guillaume
Guillaume 2017年5月16日
编辑:Guillaume 2017年5月16日
我不确定这是一个错误在matlab xml函数或 struct2xml 但问题是由于与空的文本节点。 struct2xml 这些节点的文本属性集 [] 而不是 matlab xml函数不喜欢。如果我没记错的话,matlab用于治疗这两种空矩阵相同,但是现在是更多的严格。
这是一个非常简单的修复。在第166行, struct2xml ,改变
str = [];
str =;
编辑 :我刚刚注意到并解决问题实际上是提到的 struct2xml 页面。
edit2 :注意,如果你想要做的就是改变的一些节点的时间戳,将xml转换为结构体和背部是浪费时间。你会更好的学习如何操作DOM使用返回的对象 xmlread 。它会更快,避免风险,要么转换失败。
1评论
尼科洛Trevisan
尼科洛Trevisan 2017年5月16日
我的错,我没有注意到有一个固定的看法。
我试着你说,问题已经解决了。
谢谢你!

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!