2011-07-14 33 views
1

如何将下面的代码转换为xsl可编译的形式?如果元素的名称及其属性等于某个值,XSL将获取元素

我想要什么:返回具有元素名称== CT和CT属性=='person'的元素。

我试图(但失败)的xsl:何时 “以及” 参与

<xsl:if test="CT and @Name='person'"> 

谷歌的关键字不是非常有帮助?

感谢。

+0

随着(正确的)'的xsl:if'指令你会检查元素是否存在。检索节点和值的指令是@polishchuck答案中提到的。 –

回答

3

适当的XPath:<xsl:value-of select="CT[@Name = 'person']" />

应该XML:

<root> 
    <CT Name="a">A</CT> 
    <CT Name="person">Person</CT> 
</root> 

XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="/"> 
     <xsl:value-of select="//CT[@Name = 'person']" /> 
    </xsl:template> 
</xsl:stylesheet> 

结果: Person

+0

你也可以指定,如果元素的副本是需要的(而不是它的值)'xsl:copy-of'是必须的。 –

+1

你已经假定上下文节点是CT元素的父节点。这可能或可能不是这样。 –

+0

@迈克尔,是的,我不是心灵感应派。 –