更改XML文件Matlab中的值

时间:2013-03-16 06:00:11

标签: xml matlab

这是我的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<XMLConverter> 
<Positions> 
   <Side0 Chemin="face.jpg"/>
   <Side1 Chemin="droite1.jpg"/>
   <Side2 Chemin=""/> 
   <Side3 Chemin=""/> 
   <Side4 Chemin="dos.jpg"> 
       <Dos28 PositionY="0.906845" PositionX="0.602489" Nom="Dos28" NoSelect="0"/>
       <Dos29 PositionY="0.910139" PositionX="0.570278" Nom="Dos29" NoSelect="0"/> 
       <Dos26 PositionY="0.93869" PositionX="0.601025" Nom="Dos26" NoSelect="0"/> 
   </Side4> 
   <Side5 Chemin="gauche1.jpg"/> 
   <Side6 Chemin="gauche2.jpg"/> 
   <Side7 Chemin=""/> 
</Positions> 
<Marqueurs>
<Angles>
<Distances>
</XMLConverter>

我想在Dos28中更改PositionY的值。

我试过这个:

r=num2str(25);
xDoc=xmlread(fullfile(('test pour zones.xml')));
allListItems=xDoc.getElementsByTagName('Side4');
allListItems=allListItems.item(0);
thisListItem=allListItems.getElementsByTagName('Dos28');
thisListItem.setAttribute('PositionY','25');
xmlwrite('test pour zones2.xml',xDoc);

我在Matlab中有错误:???类没有适当的方法,属性或字段setAttribute org.apache.xerces.dom.DeepNodeListImpl。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

即使matlab只找到元素名称为“Dos28”的单个元素,它仍会返回一个列表。您仍然需要从列表中获取第一项。

thisListItem=allListItems.getElementsByTagName('Dos28');
thisListItem=thisListItem.item(0);
thisListItem.setAttribute('PositionY','25');