xsl:text不能包含子元素

时间:2017-02-23 10:24:11

标签: jquery xml xslt xslt-1.0

我得到的是错误 xsl:text在锚标记中创建<a><xsl:attribute name="href"> <xsl:text>http://m.timesofindia.com?upcahe=<xsl:value-of select="'dd'"/></xsl:text> </xsl:attribute>Next</a> 值时不能包含子元素。它是n0t创建的

这是我的代码 http://xsltransform.net/bwdwsL

static void Main(string[] args)
{
    Console.WriteLine("Enter dimension for spiral matrix:");
    int matrisDim = int.Parse(Console.ReadLine());

    int[,] matris = new int[matrisDim, matrisDim];
    matris.Initialize();

    int apsisIterator = 0, ordinatIterator = 0, sum = 1;
    bool increment = true;

    for (int i = 0; i < matrisDim; i++)
    {
        matris[apsisIterator, ordinatIterator] = sum;
        if (increment)
        {
            while (apsisIterator + 1 < matrisDim && matris[apsisIterator + 1, ordinatIterator] == 0)
                matris[++apsisIterator, ordinatIterator] = ++sum;

            while (ordinatIterator + 1 < matrisDim && matris[apsisIterator, ordinatIterator + 1] == 0)
                matris[apsisIterator, ++ordinatIterator] = ++sum;
        }
        else
        {
            while (apsisIterator > 0 && matris[apsisIterator - 1, ordinatIterator] == 0)
                matris[--apsisIterator, ordinatIterator] = ++sum;

            while (ordinatIterator > 0 && matris[apsisIterator, ordinatIterator - 1] == 0)
                matris[apsisIterator, --ordinatIterator] = ++sum;
        }
        increment = !increment;
    }

    for (int i = 0; i < matrisDim; i++)
    {
        for (int j = 0; j < matrisDim; j++)
            Console.Write(matris[j, i] + "\t");
        Console.WriteLine();
    }
    Console.ReadKey();
}

1 个答案:

答案 0 :(得分:1)

您的属性值是完全静态的,因此您只需使用文字属性,例如

<a href="http://m.timesofindia.com?upcahe=dd">Next</a>

如果要使用XPath计算属性值的一部分,请使用attribute value templates例如

<a href="http://m.timesofindia.com?upcahe={'dd'}">Next</a>

如果您确实需要使用xsl:attribute,那么使用

<xsl:attribute name="href">http://m.timesofindia.com?upcahe=<xsl:value-of select="'dd'"/></xsl:attribute>

xsl:text

<xsl:attribute name="href">
  <xsl:text>http://m.timesofindia.com?upcahe=</xsl:text>
  <xsl:value-of select="'dd'"/>
</xsl:attribute>

同样,只有你的XPath表达式从XML文档而不是静态字符串中选择数据时才有意义。