我有一个PS脚本,可以创建一些XML并为XElements分配值。我需要将XElement的值包装在CData中。这是使用System.Xml.Linq 我试过这个:
$newNode.Element("details").Value = '<![CDATA[Traceback:'+$_.Exception.toString()+']]>'
但是当我输出xml时,它会转换'&lt;'和'&gt;'到&amp; lt和&amp; gt。
答案 0 :(得分:1)
将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
答案 1 :(得分:0)
尝试一下:
$cdata = $xml.CreateCDataSection($content)
$parent = $xml.GetElementsByTagName("TagName")[0]
$parent.AppendChild($cdata)