使用 xml2struct 在 matlab 中读取 xml
Posted
技术标签:
【中文标题】使用 xml2struct 在 matlab 中读取 xml【英文标题】:reading xml in matlab by using xml2struct 【发布时间】:2018-02-21 21:00:04 【问题描述】:我正在尝试使用 xml2struct 函数将 xml 文件转换为 matlab 中的结构,但我总是遇到一些不需要的错误。
这是一个例子:
这是我要转换的 XML 文件。
当我在 matlab 中使用该函数时,我得到以下结果:
我认为/希望我的字符串(“paper”)会是我的数据 - 您可以在其中看到“红色 1”。
相反,该函数找到了一个名为“#text”的子代,我的数据通过一些额外的符号进入了它的结构中。
我尝试使用不同的设置,例如更改文件编码,但没有帮助。 即使我删除了所有新行字符并且我的文件变成了单行字符串(这对我来说完全不可读,尤其是在更大的文件中)仍然是主要问题:
“简化”文件:
结果:
如果我想每隔一秒读取一个较大的文件,子元素是一个“#text”:
1,如何清除换行符而不使我的文件变成单行字符串?
2,在我看来,它不应该以这种方式工作 - “铅笔”字符串应该是我的主要结构中的数据,而不是它下面。
3,我怎样才能摆脱“#text”元素?
【问题讨论】:
【参考方案1】:第一个问题是:你确定你使用的是the last version 的xml2struct
吗?因为我下载了那个是为了进行测试,从返回的结构的角度来看,一切对我来说都很好:
换行符也是如此。脚本似乎正确地修剪了两边 XML 标记的 Text 属性。
我认为所有问题的共同根源在于您选择了旧版本的脚本来执行解析。如果不想依赖自定义脚本来解析和遍历 XML 文件,总是可以使用内置的xmlread function,它使用底层的 Java 框架来处理一切,可能更可靠(但显然有点有点难用)。
附带说明,永远不要忘记在您的 XML 文件中添加正确的声明,在顶部,在文档根之前:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
【讨论】:
他使用的是 Bioinformatics Toolbox 中的 xm2struct,而您使用的是 fileexchange 中的 xml2struct。以上是关于使用 xml2struct 在 matlab 中读取 xml的主要内容,如果未能解决你的问题,请参考以下文章