编辑XML中的特定内容

时间:2019-06-17 17:29:18

标签: xml powershell

我是Powershell的新手。我必须使用USER_AUTH_PARIS编辑“ connection.username”行。我必须使用powershell编辑xml文件。我的xml文件看起来像这样。

我已经尝试过使用xpath,但是无法获得预期的结果

应使用USER_AUT_PARIS而不​​是USER_AUT编辑文件

1 个答案:

答案 0 :(得分:0)

XML和XPath区分大小写,因此Select-XML $xmlopen -Xpath "//Property Name"不起作用。首先,它应该是//property并且属性部分也不正确。

使用[@attribute='value']语法使用适当的大小写和访问属性,

Select-Xml $x -Xpath "//property[@name='connection.username']"
Node     Path        Pattern
----     ----        -------
property InputStream //property[@name='connection.username']

要进行修改,请选择适当的节点并将新值分配到其Node.#text元素中。注意'#text'周围的引号,因为#是Powershell中的注释字符。跳过错误检查,就像这样

(Select-Xml $x -Xpath "//property[@name='connection.username']").Node.'#text' = 'user_auth_paris'
$x.save([console]::out)
<?xml version="1.0" encoding="IBM437"?>
<InitFile version="1.0">
  <session-factory>
    <property name="connection.username">user_auth_paris</property>
  </session-factory>
</InitFile>