2009-11-24 98 views
0

XSLT转换,我有以下XML和我正在写一个XSLT转换它:与比赛

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

的问题是,如果<callop>里面<is>那么它应该是一个<nano>元素和<con>成为<Fun>但是否则它是<Atom>而且<con>变成<Rel>

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

回答

3

只需指定具有完整路径的模板,就可以轻松处理这一问题。更具体的模板匹配将优先,所以不应该有任何问题。

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

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

''元素如何在''内发生了什么? – user200210 2009-11-24 21:37:38

+0

您可以声明一个单独的模板“is/callop/con”来匹配它,并使用来自“is/callop”模板的apply-templates,或者直接处理它,例如: 2009-11-24 21:41:04

+0

谢谢。现在它工作正常。 – user200210 2009-11-24 22:10:02