MATLAB - XML 编辑基础
MATLAB - XML Basics in Edit
我有以下XML结构(简化版):
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="LMSDacSolutionReport.xsl" ?>
<LMS>
<DurabilityTaskDefinition>
<Material IdRef="Material_AlSi9Cu3" />
<Tasks>
<Task>
<Material IdRef="AlSi9Cu3">
<Parameter Name="Temperature" Value="293.15"/>
</Material>
</Task>
</Tasks>
</DurabilityTaskDefinition>
<Material>
<Node>
<Parameter Name="Temperature" Value="293.15"/>
<Parameter Name="SigMeanHat" Value="0"/>
<Parameter Name="R_Ratio" Value="-1"/>
</Node>
</Material>
</LMS>
我需要将参数温度的值更改为 300(Material - 节点 - 参数('Temperature')(第 16 行)。
问题是我之前有 2 次标签 <Material>
,每次我 运行 代码时这个位置都会不同。我想告诉 MATLAB 更改属性参数的值:名称 'Temperature',仅当 Material 标记位于 <LMS>
之后的第二级时,或者如果 material 标签在标签结尾之后: 'DurabilityTaskDefinition' 。
到目前为止,我确定如何打开和读取文件:
xDoc = xmlread('C:\TEST\Durability Strain Life Analysis Solution.12.xml');
allListItems=xDoc.getElementsByTagName('Material');
Material=allListItems.item(2);
...
xmlwrite('test2.xml',xDoc);
根据评论,这是我的工作代码:
% Import the XPath classes
import javax.xml.xpath.*
% Construct the DOM.
doc = xmlread('C:\TEST\Durability Strain Life Analysis Solution.12.xml');
factory = javax.xml.xpath.XPathFactory.newInstance();
xpath = factory.newXPath();
expr = xpath.compile('/LMS/Material/Node/Parameter[@Name="Temperature"]');
result = expr.evaluate(doc, XPathConstants.NODESET);
result = result.item(0);
result.setAttribute('Value','363696369')
xmlwrite('Final.xml',doc);
有人会提出改进建议吗?
我有以下XML结构(简化版):
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="LMSDacSolutionReport.xsl" ?>
<LMS>
<DurabilityTaskDefinition>
<Material IdRef="Material_AlSi9Cu3" />
<Tasks>
<Task>
<Material IdRef="AlSi9Cu3">
<Parameter Name="Temperature" Value="293.15"/>
</Material>
</Task>
</Tasks>
</DurabilityTaskDefinition>
<Material>
<Node>
<Parameter Name="Temperature" Value="293.15"/>
<Parameter Name="SigMeanHat" Value="0"/>
<Parameter Name="R_Ratio" Value="-1"/>
</Node>
</Material>
</LMS>
我需要将参数温度的值更改为 300(Material - 节点 - 参数('Temperature')(第 16 行)。
问题是我之前有 2 次标签 <Material>
,每次我 运行 代码时这个位置都会不同。我想告诉 MATLAB 更改属性参数的值:名称 'Temperature',仅当 Material 标记位于 <LMS>
之后的第二级时,或者如果 material 标签在标签结尾之后: 'DurabilityTaskDefinition' 。
到目前为止,我确定如何打开和读取文件:
xDoc = xmlread('C:\TEST\Durability Strain Life Analysis Solution.12.xml');
allListItems=xDoc.getElementsByTagName('Material');
Material=allListItems.item(2);
...
xmlwrite('test2.xml',xDoc);
根据评论,这是我的工作代码:
% Import the XPath classes
import javax.xml.xpath.*
% Construct the DOM.
doc = xmlread('C:\TEST\Durability Strain Life Analysis Solution.12.xml');
factory = javax.xml.xpath.XPathFactory.newInstance();
xpath = factory.newXPath();
expr = xpath.compile('/LMS/Material/Node/Parameter[@Name="Temperature"]');
result = expr.evaluate(doc, XPathConstants.NODESET);
result = result.item(0);
result.setAttribute('Value','363696369')
xmlwrite('Final.xml',doc);
有人会提出改进建议吗?