简体   繁体   English

JSOUP - getElementsByTag 和 getElementsMatchingOwnText

[英]JSOUP - getElementsByTag AND getElementsMatchingOwnText

I have HTML that has a picker where I need to find elements value by its text:我的 HTML 有一个选择器,我需要在其中通过其文本查找元素值:

<html>
  <body>
    <div class="content__controls js-content__controls content__controls_padding-top-15">
      <div class="row">
        <div class="col-md-9 no-left-padding">
          <form enctype="application/x-www-form-urlencoded" method="post" class="form-inline" id="form" action="/Managment/Organizations/AddBinding">
            <div class="col-md-5 no-left-padding">
              <select class="form-control selectpicker" id="organizationId" name="organizationId" data-live-search="true" data-none-results-text="Nothing found">
                <option value="3">Text1</option>
                <option value="12">Text2</option>

For example I know Text1 and need to get 3 .例如,我知道Text1并且需要获取3

I can get all option elements in this specific picker by tag我可以通过标签获取此特定选择器中的所有选项元素

Elements elementsByTag = document.getElementById("organizationId").getElementsByTag("option");

Or I can get all elements in this picker matching text或者我可以获取此选择器匹配文本中的所有元素

String organizationName = "Text1";
Elements elementsMatchingOwnText = document.getElementById("organizationId").getElementsMatchingOwnText(organizationName);

But how can I apply both conditions simultaniously?但是我怎样才能同时应用这两个条件呢?

Something like below might be what you are looking for:类似下面的内容可能是您正在寻找的内容:

String html; // your html

String search = "Text1";
Document doc = Jsoup.parse(html);

Element option = doc.getElementById("organizationId").selectFirst("option:contains("+search+")");
System.out.println(option.attr("value"));

You can read more ablut the selector syntax here Selector.html您可以在此处阅读更多关于选择器语法的Selector.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM