internal virtual string EscapeTextValue(object value)
{
if (value is XMLObjectImpl)
{
return ((XMLObjectImpl)value).ToXMLString();
}
string text = ScriptRuntime.ToString(value);
if (text.Length == 0)
{
return text;
}
XmlDocument dom = NewDocument();
XmlElement e = dom.CreateElement("a");
e.InnerText = text;
string elementText = ToString(e);
int begin = elementText.IndexOf('>') + 1;
int end = elementText.LastIndexOf('<');
return (begin < end) ? Sharpen.Runtime.Substring(elementText, begin, end) : string.Empty;
}