xml - 从一个 XSLT 输出两个不同的 XML 根元素/结构
问题描述
我正在研究使用单个 XSLT 根据条件转换为不同 XML 根元素的方法,例如
<A> if A/a = true, then output ----> <B><b>something</b></B>
<a>true</a> --XSLT-->
</A> otherwise output ----> <C><c>something</c></C>
不知道如何去做,如果它能够做到。快速搜索但没有找到任何相关资源。
我可以在 Java/xslt 中实现相同的逻辑,比如有两个单独的 xslt,并让一个 java 程序检查输入 xml,并根据输入值,使用一个或另一个 xslt 进行转换。如果可能的话,我正在尝试在 xslt 中做同样的事情。
非常感谢任何帮助!
提前致谢!
解决方案
似乎您只是想编写不同的模板来表达您拥有的标准(我已经为a
元素制作了示例值):
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="A[a = 'foo']">
<B>
<b>
<xsl:value-of select="a"/>
</b>
</B>
</xsl:template>
<xsl:template match="A[a = 'bar']">
<C>
<c>
<xsl:value-of select="a"/>
</c>
</C>
</xsl:template>
</xsl:stylesheet>
https://xsltfiddle.liberty-development.net/3NzcBt8/和https://xsltfiddle.liberty-development.net/3NzcBt8/1有例子。
推荐阅读
- python - 是否有与 Perls 'package' 关键字等效的 Python
- html - z-index 堆栈无法正常工作
- angularjs - 单击按钮angularjs时的水平滚动条
- javascript - 使用javascript,以不同的名称保存后删除原始文件?
- wpf - 如何从 App.xaml.cs 调用资源字典文件中的方法/值
- arrays - 在不使用 RHS 作为 Mongo 参考的情况下查询对象数组?
- python - 如何在 AWS lambda 24/7 上运行我的 python 脚本
- excel - 在 Excel 中计算两个日期之间的加权分钟数
- mysql - SQL 在使用 ON DUPLICATE KEY UPDATE 时插入多条记录
- directory - 如何修改 Blue Prism 中的代码以移动文件夹及其内部的所有内容