PowerShell создает значимое пространство Whitespace

#xml #powershell #xmldocument

Вопрос:

Рассмотрим следующий фрагмент кода PowerShell:

 $xmldoc = New-Object xml
$xmldoc.PreserveWhitespace = $true

# no error
$sigws1 = $xmldoc.CreateSignificantWhitespace(" ")

# error
$sigws2 = $xmldoc.CreateSignificantWhitespace("n")
Exception calling "CreateSignificantWhitespace" with "1" argument(s): "The string for white space contains an invalid character."
At line:1 char:1
  $sigws2 = $xml.CreateSignificantWhitespace("n")
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

В соответствии с текущей документацией Microsoft См. https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmldocument.createsignificantwhitespace?view=net-5.0 например, следующие допустимые пробелы являются «символами»:

 amp;#20; amp;#10; amp;#13; and amp;#9;
 

Как правильно включить новую строку/ввод строки в строку аргумента?

Ответ №1:

PowerShell использует обратную стрелку ` в качестве escape — символа:

 $sigws1 = $xmldoc.CreateSignificantWhitespace("`n")
 

См. раздел справки по понятиям о_специальных характеристиках.