在.NET中,设置XmlElement的InnerText属性时,如何对与号进行编码,但撇号却没有?

时间:2018-06-20 12:32:02

标签: c# xml

我有以下示例代码:

public static XmlElement CreateElement(XmlDocument doc, string innerText)
{
    XmlElement el = doc.CreateElement("name");
    el.InnerText = innerText;

    return el;
}

当这样调用时,我得到了&代替OuterText属性中的原始&

XmlElement myElement = CreateElement(myDoc, "Alice & Bob");
// myElement.OuterText has "<name>Alice &amp; Bob</name>"

但是,当我像下面这样称呼时,我希望在其中有一个&apos;,而我只是拥有实际的'

XmlElement myElement = CreateElement(myDoc, "Alice's Bob");
// myElement.OuterText has "<name>Alice's Bob</name>"

有人知道不对撇号进行编码的原因吗,有没有办法将其编码在OuterText中?

1 个答案:

答案 0 :(得分:0)

正如Tom W和Alex K所说,您不需要对其进行编码(作为XmlElement转换的标准),但是如果您愿意,可以这样做:

public static System.Xml.XmlElement CreateElement(System.Xml.XmlDocument doc, string innerText)
{
    System.Xml.XmlElement el = doc.CreateElement("name");
    el.InnerText = System.Web.HttpUtility.HtmlEncode(innerText);
    return el;
}