【发布时间】:2017-06-10 11:13:06
【问题描述】:
我正在尝试在使用 JavaSE 包 org.w3c.dom 的 MATLAB 中进行 XML 解析
我有一个像
这样的 xml 结构<?xml version="1.0" encoding="utf-8"?>
<tada>
<Filters>
<filter id="1" name="name1" renderType="type1">
<bool name="par1" value="false"/>
<bool name="par2" value="false"/>
<int name="par3" value="200"/>
<int name="par4" value="1"/>
<float name="par5" value="2"/>
<bool name="par6" value="false"/>
<int name="par7" value="1"/>
</filter>
<filter id="6" name="name2" renderType="type2">
<bool name="par1" value="false"/>
<bool name="par2" value="false"/>
<int name="par3" value="200"/>
<int name="par4" value="1"/>
<float name="par5" value="2"/>
<bool name="par6" value="false"/>
<int name="par7" value="1"/>
<int name="par8" value="1"/>
<array name="par9" row="2" col="2" >
5.0162 0.96182
0.22294 0.96356
</array>
</filter>
</Filters>
</tada>
我正在尝试使用 name="name2"
获取元素 filter 的属性 renderType我正在尝试执行以下操作
config = xmlread(xmlFileName);
section = config.getDocumentElement().getElementsByTagName('Filters').item(0);
filters = section.getChildNodes();
// filters = section.getElementsByTagName('filter');
for i = 0:filters.getLength()-1
filter = filters.item(i);
if strcmp(filter.getAttribute('name'), 'name2')
filter.setAttribute('renderType', 'graph2D');
end
end
我希望 filters 应该是一个 NodeList(如文档所述 http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/package-summary.html?browser=F1help),但它作为 Text 返回(其中包含只有空格)。
如果我写
filters = section.getElementsByTagName('filter');
然后我得到想要的NodeList,但问题是这种方式不合适。因为我需要通过 name 属性的值来选择节点。
你能帮帮我吗?我做错了什么?
感谢您的帮助。
【问题讨论】:
标签: java xml matlab dom xml-parsing