带匹配的XSLT转换

时间:2009-11-24 21:33:10

标签: xml xslt

我有以下xml,我正在编写一个XSLT来转换它:

<callop>
    <con>unit</con>
    <var>u</var>
    <var>v</var>
</callop>

问题是如果<callop>位于<is>内,那么它应该是<nano>元素,而<con>会变成<Fun>,否则它会是<Atom> }}和<con>成为<Rel>

这怎么可能。我是否必须去检查父节点是什么?

1 个答案:

答案 0 :(得分:3)

只需使用完整路径指定模板,即可轻松处理此问题。更具体的模板匹配优先,因此不应存在任何问题。

<xsl:template match="is/callop">
   <nano>
     ...
...

<xsl:template match="callop">
   <Atom>
     ...
...