gpt4 book ai didi

xslt - 如何使用 XSLT 中介器在 tridion SDL Tridion 2011 SP1 中处理 XSLT 中的链接组件

转载 作者:行者123 更新时间:2023-12-03 15:33:33 24 4
gpt4 key购买 nike

我正在为具有到另一个组件的链接的组件创建 XSLT TBB。

考虑我的组件名称是“A”,它链接到另一个组件“B”。

组件 A 源如下所示:

<Content xmlns="Some UUID">
<Name xlink:type="simple" xlink:href="tcm:184-1897"
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="B"></Name>
</Content>

组分 B 来源是:
<Content xmlns="Some UUID">
<first>first filed</first>
<second>second field</second>
</Content>

任何人都可以帮助我如何编写一个 XSLT TBB 来输出这个链接组件的值吗?

谢谢你。

最佳答案

为了从链接组件访问字段,您需要使用文档功能加载它,请记住链接组件可能基于不同的架构,因此具有不同的 namespace ,如下所示:

组件 A

<Content xmlns="Some UUID">
<Name xlink:type="simple"
xlink:href="tcm:184-1897"
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:title="B"/>
</Content>

组件 B
<Content xmlns="Some Other UUID">
<Text>Some Value</Text>
</Content>

然后,您可以转换组件 A 并访问链接的组件 B,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:main="Some UUID"
xmlns:link="Some Other UUID"
xmlns:xlink="http://www.w3.org/1999/xlink" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="LINKED_COMPONENT" select="document(//main:Name/@xlink:href)"/>
<xsl:value-of select="$LINKED_COMPONENT//link:Text"/>
</xsl:template>
</xsl:stylesheet>

请注意,我在 XPath 中使用了“//”以使代码更易于阅读,但从性能的角度来看,这并不理想。

如果由于某种原因您不知道链接组件将基于什么架构(以及命名空间),您也可以使用 $LINKED_COMPONENT//*[local-name()='Text'] 表示法,但这又会导致性能下降。

关于xslt - 如何使用 XSLT 中介器在 tridion SDL Tridion 2011 SP1 中处理 XSLT 中的链接组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10240822/

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