检索变量的XML内容

时间:2016-10-05 13:35:03

标签: xml powershell

我曾经有一个填充变量([xml]$modificationData = Get-Content $modificationXmlFileName)的XML文件但是现在我无法存储该文件并且必须将其放入一个不同的数据文件中,我被告知这样做的格式是:

xmldata = @'
  <bigSection>
    <smallSection>
      <changes>
      </changes>
    </smallSection>
  </bigSection>
'@

我不确定Get-Content cmdlet现在是否可以正常工作,如果我将它传递给这个新变量并且我不完全确定我还能使用什么。

另外,我不知道代码的@''@包裹意味着什么。我认为@符号用于数组,但我认为在这种情况下它不会这样做。

任何澄清都会有所帮助。

2 个答案:

答案 0 :(得分:2)

@'...'@语法称为here字符串或here文档。它是一种指定字符串而不必转义字符的方法。

Get-Content用于读取文件。当你默认调用它时,它会返回一个行数组,除非你用-Raw参数调用它(然后它将返回一个包含文件所有内容的大字符串)。

因此,在您的示例中,$xmldata与您调用Get-Content $modificationXmlFileName -Raw的情况相同。

由于您只是想加注[xml],您可以这样做:

$xmldata = [xml]@'
...
'@

答案 1 :(得分:1)

'@' @'语法称为 here-string ,表示多行字符串,无插值

您不必/不能使用变量使用Get-Content cmdlet,而只需将其强制转换为xml:

[xml]$modificationData  = xmldata