Xml 如何在Powershell中将CData添加为XElement值?

Xml 如何在Powershell中将CData添加为XElement值?,xml,powershell,cdata,Xml,Powershell,Cdata,我有一个PS脚本,它创建一些XML并为元素赋值。我需要将XElement的值包装在CData中。这是在使用System.Xml.Linq 我试过这个: $newNode.Element("details").Value = '<![CDATA[Traceback:'+$_.Exception.toString()+']]>' $newNode.Element(“详细信息”)。值=“” 但是当我输出xml时,它会将“”转换为<和>。试试看: $cdata = $xml.Cr

我有一个PS脚本,它创建一些XML并为元素赋值。我需要将XElement的值包装在CData中。这是在使用System.Xml.Linq 我试过这个:

$newNode.Element("details").Value = '<![CDATA[Traceback:'+$_.Exception.toString()+']]>'
$newNode.Element(“详细信息”)。值=“”
但是当我输出xml时,它会将“”转换为<和>。

试试看:

$cdata = $xml.CreateCDataSection($content)
$parent = $xml.GetElementsByTagName("TagName")[0]
$parent.AppendChild($cdata)

将类型为
XCData
的对象添加到元素中

[Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq") | Out-Null

[System.Xml.Linq.XCData] $cdata = New-Object -TypeName System.Xml.Linq.XCdata -ArgumentList "data"
[System.Xml.Linq.XElement] $element = New-Object -TypeName System.Xml.Linq.XElement -ArgumentList "test", $cdata

您的答案基于xmlDocument,我正在寻找基于XDocument的解决方案。(System.Xml.Linq)