Skip to main content

Fallback tag in xslt by pran sukh on python hunter blog.

Fallback: As the name is self explanatory to use something as an alternative if the primary thing does not work well. In xslt the fallback tag works as an alternative tag if any given tag does not work or is not supported by xslt processor. 

Note: This fallback will always work in not supported tags, so run time exception will not occur.

Data.xml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="XSL.xsl"?>
<records>
    <record>
        <name>Adam Barr</name>
        <address>222 Cherry</address>
        <phone>555-797-2355</phone>
    </record>
    <record>
        <name>Jeff Adell</name>
        <address>730 Elm</address>
        <phone>555-797-5555</phone>
    </record>
</records>

XSL.xsl
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?xml version="1.0"?>
<xsl:stylesheet version="1.1"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

  <xsl:template match="/">
     <HTML>
     <HEAD><TITLE>Output Table</TITLE></HEAD>
     <BODY>
     <xsl:import-table href="HTMLPage.html" name="sample">
  <p>
   &lt; xsl:import-notAnyTag &gt; is not any tag processed by xslt processor so this para will not show up.
  </p>
        <xsl:fallback>
        <p>
            This version (1.1) of the parser does not support the creation of a
            table with the 'xsl:import-table' element, even there is not any tag 
   name like &lt;xsl:import-table&gt; so the following 
            table has been generated using the 'fallback' element.
        </p>
          <table border='2'>
            <xsl:for-each select='records/record'>
              <tr>
                <td><xsl:value-of select='name'/></td>
                <td><xsl:value-of select='address'/></td>
                <td><xsl:value-of select='phone'/></td>
              </tr>
            </xsl:for-each>
          </table>
        </xsl:fallback>
      </xsl:import-table>
   <!-- Another Example-->
  <xsl:notAnyTag>
    <p>
     &lt; xsl:import-notAnyTag &gt; is not any tag processed by xslt processor so this para will not show up.
    </p>
   <xsl:fallback>
    <p>
     &lt;xsl:import-notAnyTag&gt; is not any tag processed by xslt processor so this fallback will be act as alternative tag.
    </p>
   </xsl:fallback>
  </xsl:notAnyTag>
      </BODY>
    </HTML> 
  </xsl:template>

</xsl:stylesheet>

Thanks ............
Stay tuned for more deeply explained examples.

Last update (29-April-2018)

Comments

Popular posts from this blog

regex in python python hunter

Regular Expressions is a powerful concept if understood clearly you can save your valuable time to extract out the particular text from huge string or paragraph. It is wildly pronounced as regex, it can help you to automate the boring stuff, like searching particular text form log files, python used this same concept in web scrapping. Below are some common examples to understand the regex. Method names will help you to have an idea that what exactly the regex is intended to do. if you don't understand any regex or want to create your own regex with your requirements then you can comment below, i'll reach you ASAP. Thanks. import re def phoneNumberPattern (): print ( "*" * 10 ) print ( "phoneNumberPattern()" ) regexObj = re . compile( r'\d\d\d-\d\d\d-\d\d\d\d' ) mo = regexObj . search( 'Find my phone number from this string 998-805-4332' ) print (mo . group()) def grouping (): print ( "*...

Understanding the usage of underscore( _ ) of Python for beginner. On Python Hunter

Introduction: Just like you, a newbie in python scripting language, me too was confused about lot of new things in python that are not valid or available in other languages like Java, .Net etc. Just like other things i had seen the use of '_' underscore in python, at beginning level that flabbergasted me for a while.      With some research and practice i have summarised the following usage of '_' underscore in python. Hope you will find it helpful at beginning level. First Usage : Hold the previous output value. When used in interpreter. 1 2 3 4 5 6 7 _ = input () # For example you typed '5' print (_) # This will print '5' print ( int ( _ ) * int ( _ ) ) # This will print '25' print ( int ( _ ) + 10 ) The above will print '15', because last input was "5" and in above   line of code is producing '25' as output but not being handl...

Understand the generators and yield keyword in python, on Python Hunter

Generators look like a function but there is huge difference b/w generators and function. Instead of return statements you will find only yield statements are used inside of the body of a generator , i.e. one or more yield statements.  In short the main feature of generator is that the last execution statement is kept remembered by python interpreter and the next time when the same generator is called the it execute from the last yield location instead of starting the location from TOP. And the state of all local variable(s) are kept safe, that means the local variable(s) will not change their value(s) at next call.      Follow the example to understand the concept. def gen():     yield 1     yield 2     yield 3     yield 4 f=gen() print(next(f)) # will print 1 print(next(f)) # will print 2 print(next(f)) # will print 3 Let's take a real example........... -------------------------------...