淮海工学院计算机工程学院实验报告书课程名:XML开发技术题目:基于XSLT实现XML文档的变换班级:G计121学号:2012150234姓名:范晋豪评语:成绩:指导教师:批阅时间:年月日一.实验目的(1)通过实验,进一步掌握XSLT的定义、引用。(2)通过实验,掌握XSLT的编写方法及其各类模板的应用。(3)通过实验,进一步理解XPath的作用及用法,能够正确写出对XML文档进行查询导航的XPath表达式,重点理解XPath表达式中的定位步和轴的概念。(4)通过实验,进一步理解利用XSLT实现XML文档变换的工作过程和原理,学会XSLT文件中模板的定义和调用方法,并能正确编写XSLT文件对XML文档进行转换输出。二.实验要求认真在编辑环境中编写XSLT文档;熟练掌握文档的调试和排错;熟练XSLT对XML文档的转换方式;认真总结实验过程中出现的问题和实验结果。认真编写实验报告,书写好的报告提交至中相应课程的作业中。三、实验内容1、习题8中的第4题,按照显示结果编写相应的XSLT文件。2、为下面book.xml文档设计转换文档book.xslt文件,输出后的数据格式要求如下:以表格形式输出book.xml中的数据内容;表格要有表头信息;price30时,ISBN的内容显示为红色;title的内容以粗体样式显示;book的属性classify的内容也要显示在表格中;以price升序排序。?xmlversion=1.0encoding=GB2312?booklistbookclassify=自然科学ISBN7-302-12066-8/ISBNtitleJAVA实用教程/titleauthorlistauthorHerbertSchildt/authorauthor马海军/author/authorlistprice64.00/price/bookbookclassify=社会科学ISBN7-5037-1978/ISBNtitle投资学/titleauthorlistauthor张中华/authorauthor谢进城/author/authorlistprice19.00/price/bookbookclassify=自然科学ISBN978-7-302-33085-1/ISBNtitleXML基础及实践开发教程/titleauthorlistauthor唐林/authorauthor肖大薇/author/authorlistprice39.00/price/book/booklist3、将上题的XML文档转换为符合如下要求的XML文档,具体要求如下:(1)为booklist增加一个属性all,其值为图书的数量;(2)为每个book增加一个元素publisher,并为其赋一较合理的内容值;(3)为输出文档添加一个处理指令,指明所引用的转换文档(book.xslt)四、实验步骤(1)在网络没有联通的情况下,打开XMLSPY环境;(2)编写XML文档(使用XSLT文件进行转换);(3)编写XSLT文件;(4)将XML文档转换输出。五、实验结果1、2012150238.xml:?xmlversion=1.0encoding=UTF-8??xml-stylesheettype=text/xslhref=C:\DocumentsandSettings\student\桌面\新建文件夹\2012150238.xslt?studentsstudentid=20100101name王宏/namejava96/javaoracle88/oracleuml90/uml/studentstudentid=20100102name李娜/namejava76/javaoracle56/oracleuml70/uml/studentstudentid=20100103name孙武/namejava77/javaoracle70/oracleuml80/uml/student/students(图1)2012150238.xslt:?xmlversion=1.0encoding=UTF-8?xsl:stylesheetversion=2.0xmlns:xsl=:fo=:xs=:fn=:outputmethod=htmlencoding=GB2312indent=yesdoctype-system=-//W3C//DTDHTML4.0.1Transitional//ENdoctype-public==text/html/xsl:templatematch=/htmlheadtitle成绩统计表/title/headbodytableborder=1tbodytrth姓名/ththJava成绩/ththOracle成绩/ththUML成绩/th/trxsl:apply-templates//tbody/table/body/html/xsl:templatexsl:templatematch=studentsxsl:for-eachselect=studentxsl:sortselect=sum(.//*[position()1])order=descending/trtdalign=centerxsl:value-ofselect=name/xsl:value-of/tdtdalign=centerxsl:apply-templatesselect=java//tdtdalign=centerxsl:apply-templatesselect=oracle//tdtdalign=centerxsl:value-ofselect=uml/xsl:value-of/td/tr/xsl:for-each/xsl:template/xsl:stylesheet2、book.xml:?xmlversion=1.0encoding=GB2312??xml-stylesheettype=text/xslhref=book.xslt?booklistbookclassify=自然科学ISBN7-302-12066-8/ISBNtitleJAVA实用教程/titleauthorlistauthorHerbertSchildt/authorauthor马海军/author/authorlistprice64.00/price/bookbookclassify=社会科学ISBN7-5037-1978/ISBNtitle投资学/titleauthorlistauthor张中华/authorauthor谢进城/author/authorlistprice19.00/price/bookbookclassify=自然科学ISBN978-7-302-33085-1/ISBNtitleXML基础及实践开发教程/titleauthorlistauthor唐林/authorauthor肖大薇/author/authorlistprice39.00/price/book/booklist(图2)book.xslt:?xmlversion=1.0encoding=UTF-8?xsl:stylesheetversion=2.0xmlns:xsl=:xs=:fn=:outputmethod=htmlversion=1.0encoding=UTF-8indent=yes/xsl:templatematch=/htmlheadtitle图书简介/title/headbodytableborder=1tbodytrth书名/ththISBM/thth课题/thth作者/thth价格/th/trxsl:for-eachselect=booklist/bookxsl:sortselect=price/trtdxsl:value-ofselect=@classify//tdxsl:choosexsl:whentest=price>30tdbgcolor=#ff0000xsl:value-ofselect=ISBN//td/xsl:whenxsl:otherwisetdxsl:value-ofselect=ISBN//td/xsl:otherwise/xsl:choosetdxsl:value-ofselect=title//tdtdxsl:value-ofselect=authorlist/author/xsl:value-ofselect=authorlist/author[2]//tdtdxsl:value-ofselect=price//td/tr/xsl:for-each/tbody/table/body/html/xsl:template/xsl:stylesheet3、添加一个元素“publisher”后的book1.xml:?xmlversion=1.0encoding=GB2312??xml-stylesheettype=text/xslhref=book1.xslt?booklistall=500bookclassify=自然科学ISBN7-302-12066-8/ISBNtitleJAVA实用教程/titleauthorlistauthorHerbertSchildt/authorauthor马海军/author/authorlistprice64.00/pricepublisher清华大学出版社/publisher/bookbookclassify=社会科学ISBN7-5037-1978/ISBNtitle投资学/titleauthorlistauthor张中华/authorauthor谢进城/author/authorlistprice19.00/pricepublisher西安大学出版社/publisher/bookbookclassify=自然科学ISBN978-7-302-33085-1/ISBN