0

我需要将超链接添加到我编写的 XSL 文件。此超链接必须通过用户单击事件打开 XML 文件。这些文件 XML 在我的本地文件系统中到我的当前目录中。

XML 文档的一部分

<Document>
<racine> <label>Jdk from Sun</label> </racine>
<racine> <label>Maven plugin Eclipse</label>  </racine>
</Document>

对于我文档的这一部分,工作目录中有两个文件 XML,即“来自 Sun.XML 的 Jdk”和“Maven 插件 Eclipse”

我编写的 XSL 的一部分

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" cdata-section-elements="Cdata" indent="yes"/>
<xsl:template match = "/">

<html> 
  <head/>
  <Body>
   <xsl:for-each select="Document/racine">
   <html><a href="<H3><xsl:value-of select="label"/></H3>"</a></html>
   </xsl:for-each>
  </Body>
<html>

我的表情

<html><a href="<H3><xsl:value-of select="label"/></H3>"</a></html>

是胡说八道,我知道,但我不知道如何做到最好。为了更准确,我使用 href 属性将本地文件系统链接到“来自 Sun.xml 的 Jdk”和“来自 Sun.xml 的 Jdk”文件。您的帮助非常宝贵。预先感谢

4

2 回答 2

1

我找到了关于我的问题的解决方案。我与能够遇到这种情况的人分享。

对于以下 XML 文件

<Document>
 <racine> <label>Jdk from Sun</label> </racine>
 <racine> <label>Maven plugin Eclipse</label>  </racine>
</Document>

以及 XSL 的这一部分

<xsl:element name="a">
  <xsl:attribute name="href"><xsl:value-of select="label" />
  <xsl:text>.xml</xsl:text>       
  </xsl:attribute>
  <xsl:value-of select="label" />
</xsl:element>

在上面的屏幕截图中查看输出。在此处输入图像描述

谢谢大家

于 2013-06-30T20:39:47.960 回答
0

我不确定<a href="<H3>...</H3>"></a>应该是什么意思,所以我假设你想要这样的东西:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="Document">
    <html> 
      <head/>
      <body>
        <xsl:apply-templates select="racine" />
      </body>
    </html>
  </xsl:template>

  <xsl:template match="racine">
    <h3>
      <a href="{encode-for-uri(label)}"><xsl:value-of select="label" /></a>
    </h3>
  </xsl:template>
</xsl:stylsheet>

笔记

  • 使用模板匹配 ( <xsl:apply-templates>/ <xsl:template>) over<xsl:for-each>
  • 使用属性值模板(花括号)来填充href属性
  • encode-for-uri()( docs ) 创建格式良好的 URL的必要用途
于 2013-06-30T12:16:28.550 回答