我正在尝试创建一个脚本来更新位于API结构(XML)中的特定字段。我已经检索了该特定节点的值,如下所示:
$ProdData = Invoke-Restmethod -Uri $ProdUrl -Method Get -Headers $headers -UseBasicParsing
$ProdAttributes = $ProdData.list | Select-Xml -Xpath "//resource/attributes"
$SelectXML = $ProdAttributes | Select-Xml -XPath "//attribute[@name='required-parameters']"
$SelectItem = $SelectXML | Select-Xml -XPath "//parameters/parameter[@name='modelInputParameters']"我想要覆盖的值是$SelectItem.Node.value和$NewModelInput值,但我不太确定如何实现。
结构看起来有点像这样:
<resource>
<attributes>
<attribute name="required-parameters">
<parameters>
<parameter step="persist_imported_data_strings_hidden" name="modelInputParameters" value="{'info':'3','horlgto':'0','horlgtb':'700'}" committed="false"/>
</parameters>
</attribute>
</attributes>
</resource>谢谢你的帮助!
发布于 2020-08-21 10:07:15
我建议不要使用$SelectItem = $SelectXML | Select-Xml,而是建议使用SelectSingleNode()。
就像这样:
# the new value for the `value attribute`
$NewModelInput = "{'info':'999','horlgto':'888','horlgtb':'777'}"
$SelectItem = $SelectXML.SelectSingleNode("//parameters/parameter[@name='modelInputParameters']")
# update the value attribute for this node
$SelectItem.SetAttribute("value", $NewModelInput)https://stackoverflow.com/questions/63518056
复制相似问题