如何在xslt中的锚标记中设置值?

时间:2017-01-31 06:04:51

标签: jquery xml xslt xslt-1.0

你能告诉我如何在xslt中设置锚标签的值吗?我有两个锚标记。我想在那个

中设置值

for abc我想要href =" http://abc/pqr.com" for ddd我想要href =" http://india/pqrfff.com"

我可以使用选择还是其他明智的...或者xslt中有key value对吗?我们可以在xslt中创建对象吗?

这是我的代码 http://xsltransform.net/3NSSEvA输入

 <col>
        <s>
            <name>abc</name>
        </s>
        <s>
             <name>dddd</name>
        </s>
    </col>

预期输出

 <h3><a href="http://abc/pqr.com">abc</a></h3>
   <h3><a href="http://india/pqrfff.com">dddd</a></h3>

1 个答案:

答案 0 :(得分:1)

可能的解决方案之一是将“name / url”对保留在外部文件中,例如 Links.xml ,如下所示:

<links>
  <link>
    <name>abc</name>
    <url>http://abc/pqr.com</url>
  </link>
  <link>
    <name>dddd</name>
    <url>http://india/pqrfff.com</url>
  </link>
</links>

然后在主XSL文件中,您可以加载此文件:

<xsl:variable name="links" select="document('links.xml')"/>

最后一件事是根据每个a元素中的源数据生成输出col/s标记。 直接从源name标记中获取标记的文本部分 并且href中的$links属性内容会在<xsl:attribute name="href" select="@links/link[@name=name]/url"/> 中查找:

href

另一个概念

扩展您的XML文件(包括name标记以及var element = e.target, bodyRect = document.body.getBoundingClientRect(), elemRect = element.getBoundingClientRect(), offsetX = elemRect.left - bodyRect.left + e.offsetX, offsetY = elemRect.top - bodyRect.top + e.offsetY; )。那你就不需要任何外部文件了。