2

这是我的 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 中有一个错误:???类 org.apache.xerces.dom.DeepNodeListImpl 没有合适的方法、属性或字段 setAttribute。

感谢帮助!

4

1 回答 1

1

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

thisListItem=allListItems.getElementsByTagName('Dos28');
thisListItem=thisListItem.item(0);
thisListItem.setAttribute('PositionY','25');
于 2013-03-27T22:02:39.763 回答