faqts : Computers : Internet : Web : XML : XSL[T] (in IE 5.x)

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

1 of 2 people (50%) answered Yes
Recently 1 of 2 people (50%) answered Yes

Entry

XML: XSL: Tree:Create:Simple: How to create general tree in XML: 1 parent, 1 child? [table HTML]

Sep 7th, 2003 07:42
Knud van Eeden,


----------------------------------------------------------------------
--- Knud van Eeden --- 07 September 2003 - 03:29 pm ------------------

XML: XSL: Tree:Create:Simple: How to create general tree in XML: 1 
parent, 1 child? [table HTML]

Steps: Overview:

 1. -The general structure of the tree is:

       '/'
        |
        +-element1
        | |
        | +-------element11
        |
        +-element1
        | |
        | +-------element11
        |
        |
        +-element1
        | |
        | +-------element11
        |
        +-element1
        | |
        | +-------element11
        |
        +-element1
        | |
        | +-------element11
        |
        ...
        |
        +-element1
          |
          +-------element11

 2. -Create an XML file:

      <?xml version="1.0" encoding="UTF-8"?>

      <!DOCTYPE MYBOOKS SYSTEM "array.dtd">

      <?xml-stylesheet type="text/xsl" href="array.xsl"?>

      <!-- library: (filenamemacro=array.xml)  -->

      <element1>

       <element11>

        <element111>
          information1
        </element111>

       </element11>

       <element11>

        <element111>
          information2
        </element111>

       </element11>

      </element1>

 3. -Create a DTD file:

      <!ELEMENT element1 (element11+)>

      <!ELEMENT element11 (element111)>

      <!ELEMENT element111 (#PCDATA)>

 4.1 -Create an XSL file: recursive solution using 'apply-templates'

      <?xml version="1.0"?>

      <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

       <!-- recursive solution: using 'apply-templates' -->

       <xsl:template match="/">
         <xsl:apply-templates/>
       </xsl:template>

       <xsl:template match="element1">
         <HTML>
          <HEAD>
           <TITLE>
             My elements
           </TITLE>
          </HEAD>
          <BODY>
           <BR/> Overview elements
            <xsl:apply-templates/>
          </BODY>
         </HTML>
       </xsl:template>

       <xsl:template match="element11">
         <BR/> element11 =
          <xsl:apply-templates/>
       </xsl:template>

       <xsl:template match="element111">
        <BR/> element111 =
         <xsl:value-of select="."/>
       </xsl:template>

      </xsl:stylesheet>

 4.1.1 -The HTML result shown in a browser is:

      Overview elements
      element11 =
      element111 = information1
      element11 =
      element111 = information2

 4.2 -Create an XSL file: iterative solution using 'for-each'

      <?xml version="1.0"?>

      <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

       <!-- iterative solution: using 'for-each' -->

       <xsl:template match="/">
         <xsl:apply-templates/>
       </xsl:template>

       <xsl:template match="element1">
         <HTML>
          <HEAD>
           <TITLE>
             My elements
           </TITLE>
          </HEAD>
          <BODY>

           <BR/> Overview elements

             <xsl:for-each select="element11">
              <BR/> element11 =

               <xsl:for-each match="element111">
                <BR/> element111 =
                 <xsl:value-of select="."/>
               </xsl:for-each>

             </xsl:for-each>

          </BODY>
         </HTML>

       </xsl:template>

      </xsl:stylesheet>

 4.2.1 -The HTML result shown in a browser is:

      Overview elements
      element11 =
      element111 = information1
      element11 =
      element111 = information2

---

Note: a table is a special case of a tree


as the table:

+-----+--------+
| row | column |
+-----+--------+
| row | column |
+-----+--------+
| row | column |
+-----+--------+
| row | column |
+-----+--------+
| row | column |
+-----+--------+

 is represented as a tree as:


       '/'
        |
        +-row
        | |
        | +-------column
        |
        +-row
        | |
        | +-------column
        |
        |
        +-row
        | |
        | +-------column
        |
        +-row
        | |
        | +-------column
        |
        +-row
        | |
        | +-------column
        |
        ...
        |
        +-row
          |
          +-------column

---

Internet: see also:
http://www.faqts.com/knowledge_base/view.phtml/aid/24207/fid/671

-----------------------------------------------------------------------