Xpath部分:
1.选择部门30中的所有员工.
/company/dept[@deptno='D30']/emp
// 最前面的‘ / ’有没有都一样
2.列出所有办事员(CLERK)的所有员工.
company/dept/emp[@job='CLERK']
3.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.
company/dept[@deptno='D10']/emp[@job='MANAGER'] | company/dept[@deptno='D20']/emp[@job='CLERK']
// ' | ' 的使用
4.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料.
company/dept[@deptno='D10']/emp[@job='MANAGER'] | company/dept[@deptno='D20']/emp[@job='CLERK'] | //emp[sal>=2000 and @job!='MANAGER' and @job!='CLERK']
// and 的使用
5.找出不收取佣金或收取的佣金低于500的员工.
//emp[sal<500 or not(sal)]
// or 的使用 not 的使用 <的使用
6.列出所有部门的信息
company/dept
7.列出所有人员的信息
//emp
// ' // ' 的使用
8.按工资段[<1000] [1000-3000] [3000-5000]显示人员工资
//emp[sal<1000]
//emp[sal>=1000 and sal<3000]
//emp[sal>=3000 and sal<=5000]
// <的使用 与'>'的使用
XSL部分
第8题的xsl文件
<?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>
<body>
<h4>8.按工资段[<1000] [1000-3000] [3000-5000]显示人员工资</h4>
小于1000<br/>
<ul>
<xsl:for-each select="//emp[sal<1000]">
<li>
ename:
<xsl:value-of select="ename" />
sal:
<xsl:value-of select="sal" />
</li>
</xsl:for-each>
</ul>
1000-3000<br/>
<ul>
<xsl:for-each select="//emp[sal>=1000 and sal<3000]">
<li>
ename:
<xsl:value-of select="ename" />
sal:
<xsl:value-of select="sal" />
</li>
</xsl:for-each>
</ul>
3000-5000<br/>
<ul>
<xsl:for-each select="//emp[sal>=3000 and sal<=5000]">
<li>
ename:
<xsl:value-of select="ename" />
sal:
<xsl:value-of select="sal" />
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
要注意的是在HTML里<br>是可以的,但在xml里是不行的,xml语法比较严格,所以必须是<br/> xml文件和xsl文件的encoding要一样 <xsl:stylesheet>的内容:xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 还有版本号 version="1.0" <xsl:stylesheet> 和 <xsl:transform> 是完全同义的