如何解决Powershell:在 SelectNodes 中使用变量不起作用
我想在 SelectNodes 命令中使用一个变量。不幸的是它不起作用:( XML 的内容是德文,抱歉。
Write-Output $propName
$propertyValue= $inputFile.SelectNodes("/MatML_Doc/Material/BulkDetails/PropertyData[@property='$propName']/Data")
Write-Output 给我字符串 'Bruchdehnung'。但是 $propertyValue 是空的。
当我用“Bruchdehnung”替换 SelectNodes 命令中的 $propName 时,它按预期工作。
$propertyValue= $inputFile.SelectNodes("/MatML_Doc/Material/BulkDetails/PropertyData[@property='Bruchdehnung']/Data")
这是 XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<MatML_Doc>
<Material>
<BulkDetails>
<Notes/>
<Name>1.0037 (St37)</Name>
<Class>
<Name>MetaL|Steel</Name>
</Class>
<Source source=""/>
<ExternalIdentifier>1.0037 (St37)</ExternalIdentifier>
<PropertyData property="Bruchdehnung">
<Data format="exponential">0.000000e+000</Data>
</PropertyData>
<PropertyData property="Dichte">
<Data format="exponential">7.800000e+003</Data>
</PropertyData>
<PropertyData property="Elastizitätsmodul">
<Data format="exponential">2.100000e+011</Data>
</PropertyData>
<PropertyData property="Material Type">
<Data format="string">IsotropicMaterial</Data>
</PropertyData>
<PropertyData property="Poissonscher Beiwert">
<Data format="exponential">2.800000e-001</Data>
</PropertyData>
<PropertyData property="Spezifische Wärme">
<Data format="exponential">4.400000e+002</Data>
</PropertyData>
<PropertyData property="Streckgrenze">
<Data format="exponential">2.350000e+008</Data>
</PropertyData>
<PropertyData property="Wärmeausdehnungskoef.">
<Data format="exponential">1.100000e-005</Data>
</PropertyData>
<PropertyData property="Wärmeleitfähigkeit">
<Data format="exponential">1.400000e+001</Data>
</PropertyData>
<PropertyData property="Zugfestigkeit">
<Data format="exponential">3.600000e+008</Data>
</PropertyData>
</BulkDetails>
</Material>
你知道为什么我不能在 SelectNodes 命令中使用变量吗?
解决方法
感谢大家的帮助! 我找到了解决方案:
$propertyValue= $inputFile.SelectNodes("/MatML_Doc/Material/BulkDetails/PropertyData[@property='$propName.Value']/Data")
我无法直接读取 XML 对象。我必须使用 .Value 来获取实际值 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。