我有一个 PS 脚本,它创建一些 XML 并将值分配给 XElement。我需要将 XElement 的值包装在 CData 中。这是使用 System.Xml.Linq 我试过这个:
$newNode.Element("details").Value = '<![CDATA[Traceback:'+$_.Exception.toString()+']]>'
但是当我输出 xml 时,它会将“<”和“>”转换为 < 和 >。
我有一个 PS 脚本,它创建一些 XML 并将值分配给 XElement。我需要将 XElement 的值包装在 CData 中。这是使用 System.Xml.Linq 我试过这个:
$newNode.Element("details").Value = '<![CDATA[Traceback:'+$_.Exception.toString()+']]>'
但是当我输出 xml 时,它会将“<”和“>”转换为 < 和 >。
将类型对象添加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
试试这个:
$cdata = $xml.CreateCDataSection($content)
$parent = $xml.GetElementsByTagName("TagName")[0]
$parent.AppendChild($cdata)