【Jave】Java解析html页面的元素Element——获取下拉框中的值和文本selected-option

一、问题说明

我通过模拟登录,获取到页面的Document类对象,然后要拿出里面需要的数据;

二、代码说明

比如,我有一个html中的下拉框代码,我要获取选中的项(option),怎么取?
下面是一个select元素(Element),如何通过Java获取里面的值,尤其是选中值和文本?
这里写图片描述

源代码:

  Element HYS = doc.getElementById("cellId22select");//会议室
        List<Element> HYSOptionList=HYS.select("option");
        for (Element HYSOption:HYSOptionList){
            if (0!=HYSOption.getElementsByAttribute ("selected").size()){
                conference.setHYS(HYSOption.text());
            }
        }

说明:
1、getElementById()方法是通过标签(element)来获取整个标签;因为在一个html文件中,id是不允许重复的,(脑洞大一点,可以类比数据库的主键),所以是精确获取;
2、select()方法是通过option标签名来获取标签,这里针对的是没有id的一些标签;非精确的拿,因为select下面的选项(option)不止一个,所以得到的是一个数组;
3、遍历选项(option)数组,找到选中的那一项;选中项会多一个selected属性;这里我们使用的是getElementsByAttribute()方法来获取那个元素;判断其长度不为0,则就是我们要找到的option;这里getElementsByAttribute()源代码如下:

    public Elements getElementsByAttribute(String key) {
        Validate.notEmpty(key);
        key = key.trim();
        return Collector.collect(new Attribute(key), this);
    }

我们可以看到,返回值是Elements实体类(注意结尾有s);这里使用了验证-非空判断,和trim()去掉左右的空格判断;返回值是装载集合里面的;所以,上面判断用的是集合size()大小;我们区分length()和size()可以这样记,length是数组的长度,跟英语本意长度结合;size是集合大小,跟英语本意大小结合;
4、元素(Element)的具体对象有两个方法:

  • val()方法,获取的是元素的value,这里我们叫值;
  • text()方法,获取的是元素的显示文本,为什么叫显示文本呢?因为他是裸露在html上,标签之外的;

举例如下:

<option value="3">三</option>
  • 如果用val()方法,拿到的值是“3”;
  • 如果用text()方法,拿到的文本是“三”;

对比,一目了然;

这里写图片描述

**
欢迎大家订阅我的微信公众号:

【幕桥社区】,我是张牧野菌,我在幕桥社区等你~

**
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陶洲川

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

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

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

打赏作者

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

抵扣说明:

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

余额充值