如何在转换为多个xml后拆分输入xml';s使用一个xslt在tridion中实现组件链接
假设输入xml如图所示如何在转换为多个xml后拆分输入xml';s使用一个xslt在tridion中实现组件链接,xslt,tridion,Xslt,Tridion,假设输入xml如图所示 <Content> <ab>xxxx</ab> <bc>yyyyyy</bc> <ca>uuuuuuu</ca> </Content> 其中A、B、C是已从文件创建的独立组件,这些文件是通过将转换后的输入xml文件拆分为多个xml文件而形成的 组件A的源:文件名
<Content>
<ab>xxxx</ab>
<bc>yyyyyy</bc>
<ca>uuuuuuu</ca>
</Content>
其中A、B、C是已从文件创建的独立组件,这些文件是通过将转换后的输入xml文件拆分为多个xml文件而形成的
组件A的源:文件名应该是转换后的标记名,如aaa.xml
<Content>
<aaa>xxxx</aaa>
</Content>
xxxx
此处“aaa”是从输入xml转换而来的相应“ab”标记名的标记名
组件B的源:文件名应该是经过转换的标记名,如bbb.xml
<Content>
<bbb>yyyyyy</bbb>
</Content>
yyyyyy
此处“bbb”是从输入xml转换而来的相应“bc”标记名的标记名
组件C的源:文件名应该是转换后的标记名,如ccc.xml
<Content>
<ccc>uuuuuuu</ccc>
</Content>
乌乌
此处“ccc”是从输入xml转换而来的相应“ca”标记名的标记名
因此,我只需要一个XSLT,它可以将输入xml转换为tridion组件链接格式,还可以拆分输入xml中的每个标记,将其转换并将其存储在相应的文件下,文件名作为转换后的标记名。有人能帮我一下吗。您的实现似乎正在彻底改造轮子-您有什么理由不能使用SDL Tridion提供的标准组件链接功能?假设您有3个具有以下URI的目标组件:
<Content>
<aaa xlink:href="tcm:1-1" xlink:title="Target A">Some text</aaa>
<bbb xlink:href="tcm:1-2" xlink:title="Target B">Some text</bbb>
<ccc xlink:href="tcm:1-3" xlink:title="Target C">Some text</ccc>
</Content>
然后应用默认TBB将这些链接转换为动态链接引用,当页面加载时,链接将解析为所需的路径
如果没有帮助,请考虑重新编写你的问题,这样我们就可以理解你实际上想要达到的目标。
我不知道怎么可能有一个单独的XSLT,它也将单独地保存所有的组件。你需要一些胶水把它粘在一起。我也不理解要求它应该是单个XSLT背后的原因……好吧。我们可以使用单个xslt将输入xml转换为组件链接源格式,并将转换为单独文件的标记拆分。我不需要为拆分的文件创建组件,我只需要根据组件如何驻留在tridion中的源格式转换拆分为文件的标记,并使用Webdav加载它。我认为这将解决我们的问题。您似乎已经做出了无法实现的设计。也许根据你试图解决的问题来写你的问题会更好。这样-答案可能对你和其他人都有帮助。请你解释一下你的用例,说明你想要实现什么。与您目前采用的方法相比,可能有简单的解决方案/方法。您是否试图通过复制和粘贴xml文件使用webdav导入内容?从其他人的评论中可以看出,您可能使设计复杂化了。使用XSLT 2.0或XSLT 1.0可以很容易地做到这一点,您可以使用执行
的EXSLT实现。你对这些解决方案感兴趣吗?
<Content>
<ccc>uuuuuuu</ccc>
</Content>
<Content>
<aaa xlink:href="tcm:1-1" xlink:title="Target A">Some text</aaa>
<bbb xlink:href="tcm:1-2" xlink:title="Target B">Some text</bbb>
<ccc xlink:href="tcm:1-3" xlink:title="Target C">Some text</ccc>
</Content>
<body>
<a tridion:href="tcm:1-1" title="Target A">Some text</a>
<a tridion:href="tcm:1-2" title="Target B">Some text</a>
<a tridion:href="tcm:1-3" title="Target C">Some text</a>
</body>