#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")
См. раздел справки по понятиям о_специальных характеристиках.