XSLT - 递归地向外工作

Bud*_*Joe 3 xml xslt recursion

我理解如何使用XSLT从最外层的person元素到最里层的元素处理这个doc(下面).但我想知道是否:

  1. 如果它可以从最深的元素出来工作.
  2. 鉴于我的例子,这看起来像什么.
<?xml version="1.0" encoding="utf-8" ?>
<container>
  <person name="Larry">
    <person name="Moe">
      <person name="Curly">
        <person name="Shemp">

        </person>
      </person>
    </person>
  </person>
</container>
Run Code Online (Sandbox Code Playgroud)

Teu*_*n D 11

您可以使用parent :: axis进行处理.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <xsl:apply-templates select="//person[not(person)]"/>
    </xsl:template>
  <xsl:template match="person">
    <xsl:value-of select="@name"/> -&gt; <xsl:apply-templates select="parent::person"/>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

没有经过测试,我的语法可能不合适.

它应该打印Shemp - > Curly - > Moe - > Larry