How to change values in XML file?
    15 views (last 30 days)
  
       Show older comments
    
I apologize in advance as I have never worked with XML and this is my first try so any assistance will be really appreciated. I am trying to change a value in a XML file using Matlab with the following structure:
     <setting name="test1">
          <value>0</value>
     </setting>
     <setting name="test2">
          <value>1</value>
     </setting>
     <setting name="test3">
          <value>1</value>
          <Air elev="83.0" temp="59.0" pre="29.9247">
          </Air>
      </setting>
The value I want to change is "0" to "1" in "test1" and also the value of "elev" in "test3". For the first part this is what I have till now:
        a = docNode.getElementsByTagName('job');
        b = a.item(0);
        c = b.getElementsByTagName('setting');
        d = c.item(0);
        d.getFirstChild.setData('2')
        xmlwrite('test1.xml',docNode);
The problem is that this is my output for line3 in the 'test1.xml' file.
<setting name="test1">20
I really have no clue how to deal with the xml when there are attributes and I have no idea how to change the value of attributes. I would really appreciate any help!
Thanks
Abhay
0 Comments
Accepted Answer
  Jarrod Rivituso
    
 on 4 Sep 2012
        Working with XML can definitely be tricky! Fortunately, these kinds of things are pretty well documented...
For your two cases, it'd be something like
d.nodeValue = '2';
and
someNode.setAttribute("elev","83.0");
2 Comments
  ANKAN BHATTACHARYYA
 on 27 Jun 2016
				
      Edited: ANKAN BHATTACHARYYA
 on 27 Jun 2016
  
			
		
  Robert Ungi
 on 7 Jan 2022
				Maybe a more generic way: https://www.thewizz.art/2022/01/06/how-to-modify-an-xml-attribute-value-using-matlab/
More Answers (0)
See Also
Categories
				Find more on Cell Arrays in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


