XPath、XSL练习笔记

这篇博客介绍了如何使用XPath选取XML文档中特定的员工信息,如部门30的员工、职位为CLERK的员工等,并展示了如何通过XSLT将这些信息按工资段进行分类展示,包括小于1000、1000-3000和3000-5000的工资区间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Xpath部分:

1.选择部门30中的所有员工.

/company/dept[@deptno='D30']/emp

// 最前面带' / '表示绝对路径

2.列出所有办事员(CLERK)的所有员工.

company/dept/emp[@job='CLERK']

//  此题中最前面的‘ / ’有没有都一样    因为match="/"

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

// ' // ' 的使用
路径缩写可以去这看看XPath_a2416258499的博客-优快云博客

8.按工资段[<1000] [1000-3000] [3000-5000]显示人员工资

//emp[sal&lt;1000]
//emp[sal>=1000 and sal&lt;3000]
//emp[sal>=3000 and sal&lt;=5000]
// &lt;的使用 与'>'的使用

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.按工资段[&lt;1000] [1000-3000] [3000-5000]显示人员工资</h4>
                小于1000<br/>
                <ul>
                    <xsl:for-each select="//emp[sal&lt;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&lt;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&lt;=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> 是完全同义的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

臭屁虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值