我需要添加我写的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”文件。 你的帮助非常宝贵。 提前谢谢
答案 0 :(得分: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>
在上面的屏幕截图中查看输出。
全部谢谢
答案 1 :(得分: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>
)而不是<xsl:for-each>
href
属性encode-for-uri()
(docs)来创建格式正确的网址