gpt4 book ai didi

xslt - 如何在 XSLT 中从更深层次访问根属性

转载 作者:行者123 更新时间:2023-12-01 04:16:02 25 4
gpt4 key购买 nike

我正在调用一个模板:

<table>
<xsl:apply-templates select="data/pics/row"/>
</table>

模板是
<xsl:template match="row">
<tr>
<xsl:for-each select="td">
<td border="0">
<a href="{@referencddePage}">
<img src="{pic/@src}" width="{pic/@width}" height="{pic/@height}"/>
</a>
</td>
</xsl:for-each>
</tr>
</xsl:template>

我的 XML 是:
<?xml version="1.0" encoding="iso-8859-8"?>
<?xml-stylesheet type="text/xsl" href="xslFiles\smallPageBuilder.xsl"?>
<data pageNo="3" referencePage="xxxxxxxxxxxxxxx.xml">
<pics>
<row no="0">
<td col="0">
<pic src="A.jpg" width="150" height="120"></pic>
</td>
</row>
</pics>
</data>

我要线路 :a h r e f="{@referencddePage}"获取输入
根, :a h r e f= "{@referencddePage}"... ,但我已经在 <td level> .

最佳答案

I want the line :a h r e f="{@referencddePage}" to get the input from the root :a h r e f= "{@referencddePage}"... but I'm already in the <td level>



如果规则是 @referencePage属性始终是顶部元素的属性,那么它始终可以通过以下方式访问:
/*/@referencePage

因此,在您的代码中,您将拥有:
<a href="{/*/@referencePage}">

我建议不要使用 <xsl:for-each>并且仅使用 and `.通过这种方式,生成的 XSLT 代码更易于理解,并且将来可以更轻松地进行修改:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="row">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>

<xsl:template match="td">
<td border="0">
<a href="{/*/@referencePage}">
<xsl:apply-templates/>
</a>
</td>
</xsl:template>

<xsl:template match="pic">
<img src="{@src}" width="{@width}" height="{@height}"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于提供的 XML 文档时,
<data pageNo="3" referencePage="xxxxxxxxxxxxxxx.xml">
<pics>
<row no="0">
<td col="0">
<pic src="A.jpg" width="150" height="120"></pic>
</td>
</row>
</pics>
</data>

产生了想要的输出:
<tr>
<td border="0">
<a href="xxxxxxxxxxxxxxx.xml">
<img src="A.jpg" width="150" height="120"/>
</a>
</td>
</tr>

看看每个模板如何如此简单。此外,进一步简化了代码。

现在,而不是:
   <img src="{pic/@src}" width="{pic/@width}" height="{pic/@height}"/>

我们只有:
   <img src="{@src}" width="{@width}" height="{@height}"/>

关于xslt - 如何在 XSLT 中从更深层次访问根属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com