1<?xml version="1.0"?> 2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 3 <xsl:output indent="yes"/> 4 5 <!-- FileName: AXES01 --> 6 <!-- Document: http://www.w3.org/TR/xpath --> 7 <!-- DocVersion: 19991116 --> 8 <!-- Section: 2.2 --> 9 <!-- Purpose: Traverse the ancestor::* axis --> 10 <!-- Elaboration: First, jump to the center (via for-each so that we don't have interfering 11 templates, which is less of a problem for ancestor than other axes), then apply-templates 12 on all members of the axis under test. Also, demonstrate the statement in XSLT 5.4 that 13 "The selected set of nodes is processed in document order, unless a sorting specification 14 is present." --> 15 16<xsl:template match="/"> 17 <out> 18 <xsl:for-each select="//center"> 19 <xsl:apply-templates select="ancestor::*"/> 20 </xsl:for-each> 21 </out> 22</xsl:template> 23 24<xsl:template match="*"> 25 <xsl:value-of select="name(.)"/><xsl:text> </xsl:text> 26</xsl:template> 27 28 29 <!-- 30 * Licensed to the Apache Software Foundation (ASF) under one 31 * or more contributor license agreements. See the NOTICE file 32 * distributed with this work for additional information 33 * regarding copyright ownership. The ASF licenses this file 34 * to you under the Apache License, Version 2.0 (the "License"); 35 * you may not use this file except in compliance with the License. 36 * You may obtain a copy of the License at 37 * 38 * http://www.apache.org/licenses/LICENSE-2.0 39 * 40 * Unless required by applicable law or agreed to in writing, software 41 * distributed under the License is distributed on an "AS IS" BASIS, 42 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 43 * See the License for the specific language governing permissions and 44 * limitations under the License. 45 --> 46 47</xsl:stylesheet> 48