问题
我们想要分配一个属性,其内容已经包含像"
或&
这样的实体。
在这个例子中,我们希望标题属性为Stack "Stacky" Overflow
:
$elem = $xml.CreateElement("Site");
$elem.SetAttribute("Title", "Stack "Stacky" Overflow");
但它会转化为以下 XML 输出:
<Site Title="Stack &quot;Stacky&quot; Overflow" />
甚至在关于XmlElement.SetAttribute方法的文档中也说明了这种行为:
为了分配包含实体引用的属性值,用户必须创建一个XmlAttribute节点加上任何XmlText和XmlEntityReference节点,构建适当的子树并使用SetAttributeNode将其分配为属性的值。