首页 > 代码库 > xsl和xml的使用总结
xsl和xml的使用总结
xsl 是 xml的样式表,类似 css和html的关系
xsl包含三部分:
1、xslt-用于转换xml
2、xpath-用于导航(遍历,选取节点)xml
3、xsl-fo-用于格式话xml
通过 XSLT,您可以向或者从输出文件添加或移除元素和属性。您也可重新排列元素,执行测试并决定隐藏或显示哪个元素,等等。
描述转化过程的一种通常的说法是,XSLT 把 XML 源树转换为 XML 结果树
举例来说明:
test.xml:
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://www.mamicode.com/test.xsl"?><root> <student> <name>xiao mei</name> <stdno>2014201314</stdno> <school>shenzhen guangdong</school> </student> <teacher class="a"> <name>LiLy</name> <course>English</course> </teacher> <teacher class="a"> <name>Joy</name> <course>English</course> </teacher> <teacher class="b"> <name>Lucy</name> <course>Chinise</course> </teacher></root>
test.xsl:
<?xml version="1.0" encoding="UTF-8"?><xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><!-- stylesheet 和 transform 可以相互替换<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></xsl:stylesheet>--><!-- <xsl:template> 元素定义了一个模板。而 match="/" 属性则把此模板与 XML 源文档的根相联系档--><!--<xsl:template match="//teacher">--><xsl:template match="/"> <html> <head></head> <body> <!-- 1、select 属性的值是一个 XPath 表达式 2、对select选取结果进行过滤:select="//student/stdno[@class="a"]" --> <table> <tr><td>stdno</td><td>name</td><td>school</td></tr> <tr> <td><xsl:value-of select="//student/stdno" /></td> <td><xsl:value-of select="//student/name" /></td> <td><xsl:value-of select="//student/school" /></td> </tr> </table> ------------------------------------------------------- <!-- Xpath表达式-参考W3school nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 .. 选取当前节点的父节点。 @ 选取属性。 --> <table> <tr><td>teacher name</td><td>teacher course</td></tr> <xsl:for-each select="//teacher[@class=‘a‘]"> <!-- 按照节点名称的值排序--> <xsl:sort select=‘name‘ /> <tr> <td><xsl:value-of select="name"/></td> <td><xsl:value-of select="course"/></td> </tr> </xsl:for-each> </table> </body> </html></xsl:template></xsl:transform>
在IE11浏览器中打开test.xml,可以看到test.xml的结果树输出,查看其源码,test.xml输出的为test.html中描述的html:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-16"></head><body><table><tbody><tr><td>stdno</td><td>name</td><td>school</td></tr><tr><td>2014201314</td><td>xiao mei</td><td>shenzhen guangdong</td></tr></tbody></table> ------------------------------------------------------- <table><tbody><tr><td>teacher name</td><td>teacher course</td></tr><tr><td>Joy</td><td>English</td></tr><tr><td>LiLy</td><td>English</td></tr></tbody></table></body></html>
可见,XSLT 把 XML 源树转换为 XML 结果树。
关于Xpath的使用,列出最常用的路径表达式,其他可查看其api:
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点。 |
/ | 从根节点选取。 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 |
. | 选取当前节点。 |
.. | 选取当前节点的父节点。 |
@ | 选取属性。 |
xsl和xml的使用总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。