如何同时使用Jsoup的getElementsByTag与getElementsMatchingOwnText获取元素值?
根据Option文本获取对应Value值的Jsoup实现方法
你可以通过两种简洁的方式结合条件实现需求:
方法一:用CSS选择器一步到位
直接通过CSS选择器同时限定父元素ID和option的自身文本内容,代码更紧凑:
String organizationName = "Text1"; Element targetOption = document.select("#organizationId option:containsOwn(" + organizationName + ")").first(); if (targetOption != null) { String targetValue = targetOption.attr("value"); // 此时targetValue就是对应文本"Text1"的value值"3" }
这里的containsOwn和你之前用的getElementsMatchingOwnText逻辑一致,专门匹配元素自身的文本内容。
方法二:基于已有代码组合筛选
先获取目标选择器下的所有option,再从中过滤出文本匹配的元素,适合需要额外处理逻辑的场景:
String organizationName = "Text1"; Elements allOptions = document.getElementById("organizationId").getElementsByTag("option"); Element targetOption = allOptions.stream() .filter(option -> organizationName.equals(option.ownText())) .findFirst() .orElse(null); if (targetOption != null) { String targetValue = targetOption.attr("value"); }
内容的提问来源于stack exchange,提问作者Kosh
相关产品推荐
相关产品推荐

