private XslNode XslValueOf()
{
ContextInfo ctxInfo = _input.GetAttributes(_valueOfAttributes);
string select = ParseStringAttribute(0, "select");
string separator = ParseStringAttribute(1, "separator");
bool doe = ParseYesNoAttribute(2, /*attName:*/"disable-output-escaping") == TriState.True;
if (separator == null)
{
if (!_input.BackwardCompatibility)
{
separator = select != null ? " " : string.Empty;
}
}
else
{
ReportNYI("xsl:value-of/@separator");
}
List<XslNode> content = null;
if (V1)
{
if (select == null)
{
_input.SkipNode();
return SetInfo(f.Error(XslLoadException.CreateMessage(ctxInfo.lineInfo, SR.Xslt_MissingAttribute, "select")), null, ctxInfo);
}
CheckNoContent();
}
else
{
content = LoadContent(select != null);
CheckError(select == null && content.Count == 0, /*[???]*/SR.Xslt_NoSelectNoContent, _input.ElementName);
if (content.Count != 0)
{
ReportNYI("xsl:value-of/*");
content = null;
}
}
return SetInfo(f.XslNode(doe ? XslNodeType.ValueOfDoe : XslNodeType.ValueOf, null, select, _input.XslVersion),
null, ctxInfo
);
}