System.Xml.Xsl.Xslt.XsltLoader.XslValueOf C# (CSharp) Method

XslValueOf() private method

private XslValueOf ( ) : XslNode
return XslNode
        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
            );
        }