Задать вопрос
@EasyCoon

Как отредактировать CDATA секцию в xml через Powershell?

Приветствую. Помогите разобраться с проблемой. Есть xml файл следующего содержания:
<?xml version="1.0" ?> 
- <Message>
- <Request>
  <Type>Maintenance</Type> 
  <Action>Evaluate</Action> 
- <Script>
- <![CDATA[ 

Jet.Log.Write("[Script] Begin");

  Jet.Db.Update("State", "State", "InstallationName", "Drillmec_1");

Jet.Log.Write("[Script] End");

  ]]> 
  </Script>
  </Request>
  <Reply /> 
  </Message>

Нужно в секции CDATA заменить Drillmec_1 на какую-то произвольную конструкцию, вводимую через Read-Host.
Никак не могу сообразить, как мне вообще работать с CDATA секцией. Нужна помощь.
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Alex_Geer
@Alex_Geer
System Engineer
# Загрузка XML файла
$xml = [xml](Get-Content "path/to/your/xml/file.xml")

# Получение элемента Script
$scriptNode = $xml.SelectSingleNode("//Script")

# Получение содержимого CDATA секции
$cdata = $scriptNode.InnerText.Trim()

# Замена строки "Drillmec_1" на введенную пользователем конструкцию
$newConstruction = Read-Host "Введите новую конструкцию"
$cdata = $cdata.Replace("Drillmec_1", $newConstruction)

# Обновление содержимого CDATA секции
$scriptNode.InnerXml = "<![CDATA[$cdata]]>"

# Сохранение изменений в XML файле
$xml.Save("path/to/your/xml/file.xml")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы