Extensible Markup LanguageRay 2013/6/11.<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:template match="/"> 【<xsl:template> 元素定义了一个模板。
而match="/" 属性则把<html> 此模板与XML 源文档的根相联系。
】<body><h2>My CD Collection</h2><table border="1"><tr bgcolor="#9acd32"><th>Title</th><th>Artist</th></tr><tr><td>.</td><td>.</td></tr></table></body></html></xsl:template></xsl:stylesheet>2.(试卷第29题)"books.xml" :<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price></book><book category="CHILDREN"><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book><book category="WEB"><title lang="en">XQuery Kick Start</title><author>James McGovern</author><author>Per Bothner</author><author>Kurt Cagle</author><author>James Linn</author><author>Vaidyanathan Nagarajan</author><year>2003</year><price>49.99</price></book><book category="WEB"><title lang="en">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price></book></bookstore>(1)【XQuery 使用函数来提取XML 文档中的数据,doc() 用于打开"books.xml" 文件:doc("books.xml")】下面的路径表达式用于在"books.xml" 文件中选取所有的title 元素:doc("books.xml")/bookstore/book/title [/bookstore 选取bookstore 元素,/book 选取bookstore 元素下的所有book 元素,而/title 选取每个book 元素下的所有title 元素]上面的XQuery 可提取以下数据:<title lang="en">Everyday Italian</title><title lang="en">Harry Potter</title><title lang="en">XQuery Kick Start</title><title lang="en">Learning XML</title>(2)下面的谓语用于选取bookstore 元素下的所有book 元素,并且所选取的book 元素下的price 元素的值必须小于30:doc("books.xml")/bookstore/book[price<30]上面的XQuery 可提取到下面的数据:<book category="CHILDREN"><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book>☆(3)doc("books.xml")/bookstore/book[price>30]/title上面这个表达式可选取bookstore 元素下的book 元素下所有的title 元素,并且其中的price 元素的值必须大于30。
下面这个FLWOR 表达式所选取的数据和上面的路径表达式是相同的:for $x in doc("books.xml")/bookstore/bookwhere $x/price>30return $x/title结果是:<title lang="en">XQuery Kick Start</title><title lang="en">Learning XML</title>通过FLWOR,您可以对结果进行排序:for $x in doc("books.xml")/bookstore/bookwhere $x/price>30order by $x/titlereturn $x/title☆3.(试卷第30题)下面的代码片段使用loadXMLDoc 函数把books.xml 载入XML 解析器中,并显示第一个book 的数据:xmlDoc=loadXMLDoc("books.xml");document.write(xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue);document.write("<br />");document.write(xmlDoc.getElementsByTagName("author")[0].childNodes[0].nodeValue);document.write("<br />");document.write(xmlDoc.getElementsByTagName("year")[0].childNodes[0].nodeValue);输出:Harry PotterJ K. Rowling2005☆4.movie.xml<?xml version="1.0"?><MOVIEDETAILS><MOVIE><TITLE>The Sixth Sense</TITLE><MOVIEID>M876</MOVIEID><DIRNAME>M Night Shyamalan</DIRNAME><CAST>Bruce Willis, Haley Joel Osment</CAST><YEAROFRELEASE>1999</YEAROFRELEASE></MOVIE></MOVIEDETAILS>movie.xsd<xsd:schema xmlns:xsd="/2001/XMLSchema"><xsd:element name="MOVIEDETAILS" type="mdet"/><xsd:complexType name="mdet"><xsd:sequence><xsd:element name="MOVIE" type="mve"/></xsd:sequence></xsd:complexType><xsd:complexType name="mve"><xsd:sequence><xsd:element name="TITLE" type="xsd:string"/><xsd:element name="MOVIEID" type="mid"/><xsd:element name="DIRNAME" type="xsd:string"/><xsd:element name="CAST" type="xsd:string"/><xsd:element name="YEAROFRELEASE" type="xsd:string"/></xsd:sequence></xsd:complexType><xsd:simpleType name="mid"><xsd:restriction base="xsd:string"><xsd:pattern value="[M]{1}\d{1}\d{1}\d{1}"/></xsd:restriction></xsd:simpleType></xsd:schema>☆5.product.xsl(1)<?xml version="1.0"?><?xml:stylesheet type="text/xsl" href="product1.xsl"?><PRODUCTDATA><PRODUCT PRODID="P001" CA TEGORY="Toy"><PRODUCTNAME>Mini Bus</PRODUCTNAME><DESCRIPTION>This is a toy for children aged 4 and above</DESCRIPTION><PRICE>75</PRICE><QUANTITY>54</QUANTITY></PRODUCT><PRODUCT PRODID="P002" CA TEGORY="Toy"><PRODUCTNAME>Barbie Doll</PRODUCTNAME><DESCRIPTION>This toy is for children in the age group of 5-10</DESCRIPTION> <PRICE>20</PRICE><QUANTITY>200</QUANTITY></PRODUCT></PRODUCTDATA><xsl:stylesheet xmlns:xsl="/1999/XSL/Transform" version="1.0"> <xsl:template match="/PRODUCTDA TA"><xsl:for-each select="PRODUCT"><xsl:sort select="@PRODID" order="descending"/><LI><xsl:text>Product ID: </xsl:text><font color="red"><xsl:value-of select="@PRODID"/></font><xsl:text> Product Name: </xsl:text><font color="red"><xsl:value-of select="PRODUCTNAME"/></font><xsl:text> Price Per Unit (In U.S. $): </xsl:text><font color="red"><xsl:value-of select="PRICE"/></font></LI></xsl:for-each></xsl:template></xsl:stylesheet>(2)<?xml version="1.0"?><?xml:stylesheet type="text/xsl" href="product2.xsl"?><PRODUCTDATA><PRODUCT PRODID="P001" CA TEGORY="Toy"><PRODUCTNAME>Mini Bus</PRODUCTNAME><DESCRIPTION>This is a toy for children aged 4 and above </DESCRIPTION><PRICE>75</PRICE><QUANTITY>100</QUANTITY></PRODUCT><PRODUCT PRODID="P002" CATEGORY="Book"><PRODUCTNAME>The English Patient</PRODUCTNAME><DESCRIPTION>This is a book set during the second worldwar</DESCRIPTION><PRICE>19</PRICE><QUANTITY>75</QUANTITY></PRODUCT><PRODUCT PRODID="P003" CATEGORY="Toy"><PRODUCTNAME>Race Car</PRODUCTNAME><DESCRIPTION>This is a toy for children aged 12 andabove</DESCRIPTION><PRICE>60</PRICE><QUANTITY>54</QUANTITY></PRODUCT></PRODUCTDATA><?xml version="1.0"?><xsl:stylesheet xmlns:xsl="/1999/XSL/Transform" version="1.0"><xsl:template match="/"><xsl:for-each select="PRODUCTDATA/PRODUCT"><xsl:choose><xsl:when test="PRICE[. > 50]"><font color="red">PRODUCT NAME: <xsl:value-of select="PRODUCTNAME"/><BR/>DESCRIPTION: <xsl:value-of select="DESCRIPTION"/><BR/>PRICE: <xsl:value-of select="PRICE"/><BR/>QUANTITY: <xsl:value-of select="QUANTITY"/><BR/><BR/><HR/> <!--Displays a horizontal rule --></font></xsl:when><xsl:otherwise><font color="green">PRODUCT NAME: <xsl:value-of select="PRODUCTNAME"/><BR/>DESCRIPTION: <xsl:value-of select="DESCRIPTION"/><BR/>PRICE: <xsl:value-of select="PRICE"/><BR/>QUANTITY: <xsl:value-of select="QUANTITY"/><BR/><BR/><HR/></font></xsl:otherwise></xsl:choose></xsl:for-each></xsl:template></xsl:stylesheet>6. XSLT,用于转换XML 文档的语言;XSL 和XSL-FO,用于格式化XML 文档的语言;XPath,是通过元素和属性在XML 文档中进行导航的语言7. XML=Extensible Markup Language8.XML 与HTML 的主要差异:XML 不是HTML 的替代。