好的,以下是关于XML和XSLT学习笔记的markdown文档:

XML XSLT学习笔记

什么是XML?

XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。它类似于HTML,但XML更加通用,可以定义自己的标记。

XML使用标记来描述数据,标记是由尖括号包围的名称和值组成的。例如:

Copy Code
<person> <name>John</name> <age>30</age> <address> <street>Main St</street> <city>Seattle</city> </address> </person>

XML可以存储任何类型的数据,包括文本、数字、日期和图像等,因此广泛用于数据交换和存储。

什么是XSLT?

XSLT(Extensible Stylesheet Language Transformations)是一种语言,用于将XML文档转换为另一种格式,例如HTML或PDF。

XSLT使用样式表来指定如何转换XML文档。样式表是由XSLT指令和模板组成的。模板指定如何匹配XML文档中的元素,并指定如何将其转换为输出格式。

以下是一个简单的XSLT样式表示例,将person元素转换为HTML表格:

Copy Code
<xsl:template match="person"> <table> <tr> <td>Name</td> <td><xsl:value-of select="name"/></td> </tr> <tr> <td>Age</td> <td><xsl:value-of select="age"/></td> </tr> <tr> <td>Address</td> <td><xsl:value-of select="address/street"/>, <xsl:value-of select="address/city"/></td> </tr> </table> </xsl:template>

以上示例中,xsl:template指令指定如何匹配person元素,并将其转换为HTML表格。

XSLT实现示例

以下是一个使用XSLT将XML文档转换为HTML的示例:

XML数据源

xmlCopy Code
<catalog> <book id="1"> <author>John Smith</author> <title>XML Programming</title> <price>29.99</price> </book> <book id="2"> <author>Jane Doe</author> <title>Web Development</title> <price>39.99</price> </book> </catalog>

XSLT样式表

Copy Code
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title>Book Catalog</title> </head> <body> <h1>Book Catalog</h1> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Author</th> <th>Price</th> </tr> <xsl:for-each select="catalog/book"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="author"/></td> <td><xsl:value-of select="price"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

转换结果

htmlCopy Code
<html> <head> <title>Book Catalog</title> </head> <body> <h1>Book Catalog</h1> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Author</th> <th>Price</th> </tr> <tr> <td>XML Programming</td> <td>John Smith</td> <td>29.99</td> </tr> <tr> <td>Web Development</td> <td>Jane Doe</td> <td>39.99</td> </tr> </table> </body> </html>

以上示例中,XSLT样式表将XML数据源转换为HTML表格,并在页面顶部添加了标题。