【问题标题】:How can I add CData as a XElement Value in Powershell?如何在 Powershell 中将 CData 添加为 XElement 值?
【发布时间】:2012-09-28 15:31:29
【问题描述】:

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

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

但是当我输出 xml 时,它会将 '' 转换为 &lt 和 &gt。

【问题讨论】:

    标签: xml powershell cdata


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      试试这个:

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

      【讨论】:

      • 你的答案是基于xmlDocument的,我正在寻找基于XDocument的解决方案。 (System.Xml.Linq)
      猜你喜欢
      • 2017-05-24
      • 2021-06-02
      • 2014-02-23
      • 1970-01-01
      • 2014-08-03
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多