Effacer les filtres
Effacer les filtres

Change the value of a parameter in xml file using matlab

56 vues (au cours des 30 derniers jours)
Zeynab Mousavikhamene
Zeynab Mousavikhamene le 26 Sep 2019
I have xml file and want to change a value of a parameter inside it. The line that has that specific parameter is:
<variable id="MIG" value="3" description="Change in MIG" />
I want to change value from 3 to other number.
I found these functions to read and write xml file:
DOMnode = xmlread('parameter.xml');
but not sure how to change the value of variable called "MIG".

Réponses (2)

Abhilash Padma
Abhilash Padma le 1 Oct 2019
To change the value of a parameter in an element, along with xmlread and xmlwrite, we need to use getElementsByTagName and setAttribute methods. See the following code where I have changed the value of parameter “value”.
<variable id="MIG" value="3" description="Change in MIG" />

Robert Ungi
Robert Ungi le 3 Jan 2022
A more general way to do so is
% <?xml version="1.0" encoding="utf-8"?>
% <xml>
% <busStop endPos="30" id="BusStop0" lane="1to2_0" startPos="20"/>
% <busStop endPos="80" id="BusStop1" lane="1to2_0" startPos="70"/>
% <chargingStation chrgPower="220" endPos="30" id="ChrgStn1" lane="1to2_0" startPos="45"/>
% </xml>
import javax.xml.xpath.*
factory = XPathFactory.newInstance;
import javax.script.ScriptContext;
xpath = factory.newXPath;
expression = xpath.compile('xml/chargingStation[@id="ChrgStn1"]');
chargingStation = expression.evaluate(fXML, XPathConstants.NODESET);
for i=0:chargingStation.getLength-1
chargingStation.item(i).setAttribute('startPos', "45")
xmlwrite('SampleXMLOut.xml', fXML);
Adopted from The Wizzart.


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by