Viewing file: gkh_20001016.py (1.8 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#G. Ken Holman's <gkholman@CraneSoftwrights.com>'s illustration of the fact that elements are the principal node type along the attribute axis
from Xml.Xslt import test_harness
sheet_and_source = """<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dummy="dummy" exclude-result-prefixes="dummy" version="1.0">
<xsl:output method="text"/>
<dummy:data> <hello att1="att1-val" att2="att2-val" att3="att3-val"/> </dummy:data>
<xsl:template match="/"> <!--root rule--> <xsl:for-each select="document('')//hello"> <xsl:text>Using self::</xsl:text> <!-- attributes are unordered, the sort is for comparision only --> <xsl:for-each select="@*[not(self::att2)]"> <xsl:sort select="name()"/> <xsl:text> </xsl:text> <xsl:value-of select="name(.)"/>-<xsl:value-of select="."/> </xsl:for-each>
<xsl:text>
Using self::</xsl:text> <!-- attributes are unordered, the sort is for comparision only --> <xsl:for-each select="@*[name(.)!='att2']"> <xsl:sort select="name()"/> <xsl:text> </xsl:text> <xsl:value-of select="name(.)"/>-<xsl:value-of select="."/> </xsl:for-each> </xsl:for-each> </xsl:template>
</xsl:stylesheet>"""
xt_output = """Using self:: att1-att1-val att2-att2-val att3-att3-val Using self:: att1-att1-val att3-att3-val"""
expected_1 = """Using self:: att1-att1-val att2-att2-val att3-att3-val Using self:: att1-att1-val att3-att3-val"""
def Test(tester): source = test_harness.FileInfo(string=sheet_and_source) sheet = test_harness.FileInfo(string=sheet_and_source) test_harness.XsltTest(tester, source, [sheet], expected_1) return
|