Detaillierte Einführung in die Code-Case-Analyse der XSLT-Vorlagenkonvertierung in XML-Dokumente

黄舟
Freigeben: 2017-03-21 16:31:12
Original
1739 Leute haben es durchsucht

 XMLDas Dokument kann nur den Inhalt der Daten darstellen, während die eigentlichen Daten auf der Webseite dargestellt werden sollen. Verwenden Sie CSS, um das XML-Dokument so zu formatieren, dass es angezeigt werden kann. Dieser Inhalt wurde im vorherigen Artikel ausführlich erläutert. Neben CSS gibt es auch eine Sprache, die auch XML Dateninhalte in Webseiten ausdrücken kann, nämlich XSL. Zu den XSL-Sprachen gehören XSLT (XSL-Transformation) und FO(Objekt formatieren). Das XSLT-Dokument kann das XML-Dokument in andere Dokumentformen konvertieren, beispielsweise HTML , Text usw. FO wird für die formatierte Ausgabe verwendet, da W3C auch den FO-Standard vereinheitlicht. Hier erklären wir nur die Verwendung von XSLT.

 Der wichtigste Teil bei der Verwendung von XSLT ist die Auswahl von XML Knotenwerte und Vorlagen erstellen. Das zum Erstellen einer Vorlage verwendete Tag ist Übereinstimmung Das -Attribut wird verwendet, um den XML-Knoten zu bestimmen, mit dem es übereinstimmt. Das zur Auswahl des Knotenwerts XML verwendete Tag ist , dieses Tag erfordert Wählen Sie das Attribut aus, um zu bestimmen, mit welchem ​​XML-Knoten es übereinstimmt. Ein einfaches Beispiel wird verwendet, um Folgendes zu veranschaulichen. Siehe das folgende XML-Dokument:

1 <?xml version="1.0" encoding="utf-8"?>
2 <?xml-stylesheet type="text/xsl" href="stylesheet.xslt"?>
3 <xml>
4   <book>
5     <name>Xml应用系列</name>
6     <author>学路的小孩</author>
7     <date>2009-03-23</date>
8   </book>
9 </xml>
Nach dem Login kopieren


Codebeschreibung: Die erste Zeile ist XML Der Deklarationsteil der Datei; die zweite Zeile deklariert die Einführung der XSLT-Datei, und das Attribut type gibt den Typ an der Datei ist text/xsl, das Attribut href verweist auf ein XSLT Datei mit dem Namen stylesheet.xslt. Nach der dritten Zeile folgt der Dokumentteil XML. Das Folgende ist der Inhalt von stylesheet.xslt:

1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 3   <xsl:template match="/">
 4     <html>
 5       <head>
 6         <title>第一个XSLT文件</title>
 7       </head>
 8       <body>
 9         <xsl:apply-templates select="xml"></xsl:apply-templates>
10       </body>
11     </html>
12   </xsl:template>
13   <xsl:template match="xml"> 
14     <table style="background-color:orange">
15       <tr>
16         <th>书名</th>
17         <th>作者</th>
18         <th>日期</th>
19       </tr>
20       <xsl:apply-templates select="book"></xsl:apply-templates>
21     </table>
22   </xsl:template>
23   <xsl:template match="book">
24     <tr>
25       <td>
26         <xsl:value-of select="name"/>
27       </td>
28       <td>
29         <xsl:value-of select="author"/>
30       </td>
31       <td>
32         <xsl:value-of select="date"/>
33       </td>
34     </tr>
35   </xsl:template>
36 </xsl:stylesheet>
Nach dem Login kopieren


Codebeschreibung: Da das Format des XSLT-Dokuments immer noch im XML-Format vorliegt, ist das Die erste Zeile ist Die Header-Deklaration von XML; die zweite Zeile ist die Version von XSLT und der Namespace Deklaration und das Tag ist XSLTFolgender Knoten des Dokuments. Die dritte Zeile verwendet , um eine Vorlage zu erstellen, select="/" Gibt an, dass es sich bei der Übereinstimmung um den Stammknoten des Dokuments handelt. Die vierte bis elfte Zeile sind die HTML-Knoteninformationen, die von diesem Knoten generiert werden sollen, wobei die neunte Zeile -Tag gibt die Anwendungsvorlage an, wobei select="xml" angibt, dass die aufzurufende Vorlage das passende XML< ist 🎜> Knotenvorlage, die in Zeile 13 angezeigt wird. Alle folgenden Zeilen (außer Zeilen 26 usw.) sind nichts anderes als Wiederholungen dieser Inhalte ohne große Einleitung. Zeile 26 ist der Inhalt der Auswahl des Tags name. Verwenden Sie IE, um die XML-Datei zu öffnen. Der angezeigte Inhalt lautet wie folgt:  

另外,XSLT还具有流程控制、条件选择、循环处理、元素排序等功能。下面通过一个实例来说明,其中XML文档内容如下:

1 <?xml version="1.0" encoding="utf-8" ?> 
 2 <?xml-stylesheet type="text/xsl" href="bookListStyle.xslt"?>
 3 <bookList>
 4   <category type="计算机">
 5     <book id="1">
 6       <title>网页与Web程序设计</title>
 7       <author>吴利兵</author>
 8       <pubInfo>
 9         <publisher>机械工业出版社</publisher>
10         <pubDate>2009-04-01</pubDate>
11         <price>16.50</price>
12       </pubInfo>
13     </book>
14     <book id="2">
15       <title>软件工程</title>
16       <author>邓良松</author>
17       <pubInfo>
18         <publisher>西安电子科技出版社</publisher>
19         <pubDate>2005-06-10</pubDate>
20         <price>33.20</price>
21       </pubInfo>
22     </book>
23   </category>
24   <category type="小说">
25     <book id="3">
26       <title>茶花女</title>
27       <author>小仲马</author>
28       <pubInfo>
29         <publisher>外语出版社</publisher>
30         <pubDate>2005-06-30</pubDate>
31         <price>22.00</price>
32       </pubInfo>
33     </book>
34     <book id="4">
35       <title>红楼梦</title>
36       <author>曹雪芹</author>
37       <pubInfo>
38         <publisher>中国教育出版社</publisher>
39         <pubDate>2005-09-06</pubDate>
40         <price>55.00</price>
41       </pubInfo>
42     </book>
43   </category>
44 </bookList>
Nach dem Login kopieren


bookListStyle.xslt文件的内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <head>
        <title>图书列表</title>
        <style>
          <![CDATA[
            body,td,th{
              font-size:10pt;
              font-family:宋体;
            }
            body{
              background-color:#c0c0c0;
            }
            table{
              border:solid red 1px;
              margin-left:30px;
              margin-right:30px;
              background-color:#ffffc0;
              cellPadding:4;
            }
          ]]>
        </style>
      </head>
      <body>
        <table>
          <caption align="top" style="font-weight:bold; text-align:left">图书列表</caption>
          <tr style="color:#8b0000" align="left">
            <th width="5%">编号</th>
            <th width="10%">类别</th>
            <th width="25%">书名</th>
            <th width="20%">作者</th>
            <th width="25%">出版社</th>
            <th width="10%">出版日期</th>
            <th width="5%">定价</th>
          </tr>
          <xsl:for-each select="bookList/category/book">
            <xsl:sort select="pubInfo/price" order="descending"/>
            <tr>
              <xsl:attribute name="style">
                color:
                <xsl:if test="../@type[.=&#39;计算机&#39;]">blue</xsl:if>
              </xsl:attribute>
              <xsl:attribute name="title">
                <xsl:value-of select="title"/>
                <xsl:choose>
                  <xsl:when test="../@type[.=&#39;计算机&#39;]">
        类别:计算机类图书
                  </xsl:when>
                  <xsl:otherwise>
        类别:小说类图书
                  </xsl:otherwise>
                </xsl:choose>
        作者:<xsl:value-of select="author"></xsl:value-of>
                <br/>
        出版社:<xsl:value-of select="pubInfo/publisher"/>
                <br/>
        出版日期:<xsl:value-of select="pubInfo/pubDate"/>
                <br/>
        定价:<xsl:value-of select="pubInfo/price"/>元
              </xsl:attribute>
              <td>
                <xsl:value-of select="@id"/>
              </td>
              <td>
                <xsl:value-of select="../@type"/>
              </td>
              <td>
                <xsl:value-of select="title"/>
              </td>
              <td>
                <xsl:value-of select="author"/>
              </td>
              <td>
                <xsl:value-of select="pubInfo/publisher"/>
              </td>
              <td>
                <xsl:value-of select="pubInfo/pubDate"/>
              </td>
              <td>
                <xsl:value-of select="pubInfo/price"/>
              </td>
            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Nach dem Login kopieren

 

     这里不再对代码进行分析,请读者自己理解这段代码,并动手写一下自己的XSLT模板。这段代码的运行效果如下图:

 

 

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Code-Case-Analyse der XSLT-Vorlagenkonvertierung in XML-Dokumente. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage