You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向.NET XmlElement中插入未转义的CSS文本节点?

解决XmlDocument添加CSS文本被转义的问题

当你用XmlDocument的CreateTextNode添加CSS内容时,XML特殊字符(比如>)会被自动转义成实体(>),导致CSS选择器失效。解决这个问题的核心是用CDATA块包裹CSS内容,因为CDATA内的文本不会被XML解析器转义。

修改后的PowerShell代码

[XmlElement]$style = $html.CreateElement('style')
# 用CreateCDataSection替代CreateTextNode,包裹CSS内容
[XmlCDataSection]$cdata = $html.CreateCDataSection(@'

table > colGroup > col.genreCol
{
  display: none;
}

'@ + "`t`t")

$style.AppendChild($cdata) | Out-Null

原理说明

  • XmlText节点会严格遵循XML规则,自动转义所有特殊字符以保证XML结构合法,但这会破坏CSS语法。
  • XmlCDataSection创建的CDATA块(格式为<![CDATA[内容]]>)会告知XML解析器:块内内容是纯文本,无需解析转义,完全适配CSS、JavaScript这类包含特殊字符的代码内容。

内容的提问来源于stack exchange,提问作者AxD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:42:31