2012-09-28 31 views
0

我有一個PS腳本可以創建一些XML併爲XElements賦值。我需要將XElement的值包裝在CData中。這是通過使用System.Xml.Linq的 我嘗試這樣做:如何在Powershell中將CData添加爲XElement值?

$newNode.Element("details").Value = '<![CDATA[Traceback:'+$_.Exception.toString()+']]>' 

但是當我輸出的XML,它的 '<' 和 '>' 轉換爲& lt和& GT。

回答

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 
0

試試這個:

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

你的答案是基於XmlDocument的,我正在尋找基於的XDocument的解決方案。 (System.Xml.Linq的) – tjernigan

相關問題