2013-03-16 20 views
2

這是我的xml文件:在XML文件中更改數值Matlab的

<?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值。

我已經試過這樣:

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。

感謝您的幫助!

回答

1

儘管matlab只能找到一個元素名爲'Dos28'的單個元素,它仍然會返回一個列表。您仍然需要從列表中獲取第一項。

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