XSLT使用命名空间呈现XML而不是

时间:2016-02-23 11:05:26

标签: xml xslt xml-namespaces

我的问题类似于question。除了我想要一个样式表来呈现(XML到PDF)包含或不包含名称空间的XML。

因为我的一些外部系统在没有命名空间的情况下生成XML,而某些外部系是否可以容纳一个样式表来满足这两种XML?如果可能怎么样?

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

在XSLT 2.0中,您可以使用星号作为命名空间的通配符,例如分别为<xsl:template match="*:foo"> <xsl:value-of select="*:bar"/>。在XSLT 1.0中,您可以使用union运算符,例如: <xsl:template match="foo | df:foo"><xsl:value-of select="bar | df:bar"/>,只要单个输入包含命名空间或非命名空间元素,它就可以工作。

作为替代方案,您可以编写一个转换步骤来执行预处理,以添加您期望的命名空间或将其删除,然后使用第二个转换步骤将规范化的XML转换为PDF。