Редактировать определенный контент в XML - PullRequest
0 голосов
/ 17 июня 2019

Я новичок в Powershell. Мне нужно отредактировать строку «connection.username» с помощью USER_AUTH_PARIS. Мне нужно отредактировать XML-файл с помощью powershell. Мой XML-файл выглядит так.

Я пробовал с xpath, но не смог получить ожидаемый результат

файл должен редактироваться с помощью USER_AUT_PARIS вместо USER_AUT

1 Ответ

0 голосов
/ 17 июня 2019

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...