我得到的是错误 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();
}
答案 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文档而不是静态字符串中选择数据时才有意义。