如何将带有 HTML 标签的字符串放入数组或列表中?

我有一个字符串,其中包含一些 html 标签,并且一个字符串中有多个数据。我需要检查 UI 上的元素是否存在于该字符串中。我能够删除标签,但我不确定如何将字符串转换为数组或列表,以便更容易比较。


例如,来自数据库的字符串是:


<dl style="float: left; text-align: left; width: 50%;">

 <dt>

     Note1amp;M

 </dt>

 <dd>

     - This is an example

 </dd>

 <dt>

     Note2

 </dt>

 <dd>

     - Example 2

 </dd>

 <dt>

     Note 3

 </dt>

 <dd>

      - This is example 3

 </dd>

来自ui的文本是


Note1 - This is an example


其中 Note1 是一个元素


这是一个例子是另一个元素


到目前为止,我必须删除标签并尝试放入列表


public String[] verifyData(Strint txtFromDB) {

        String[] txt = new String[3];

        boolean compareValue1 = false, compareValue2 = false;

        boolean boolBack = false;

        WebElement abbreviation = driver.findElement(By.xpath(itemLocatorP1));

        WebElement fullName = driver.findElement(By.xpath(itemLocatorP2));

        String p1, p2;


        if((abbreviation.isDisplayed()) && (fullName.isDisplayed())) {

            try {

                getMenu().scroll_To_View_Web_Element(itemLocatorP1);

                p1 = getUITxt(itemLocatorP1); // getting a text from the UI;

                getMenu().scroll_To_View_Web_Element(itemLocatorP2);

                p2 = getUITxt(itemLocatorP2); // getting the second part text from the UI: 

                txt[0] = p1; //  Note 1

                txt[1] = p2; // - This is an example


                System.out.println("Array txt -> " + txt[0]);

            }

            catch(Exception e) {

                txt[0] = "Blank";

                System.out.println("Array txt Exception-> " + txt[0]);

            }


所以我想要做的是<dt>Note1</dt> and <dd>-This is an example</dd>作为一个字符串,比如:Note 1 - This is an example在一个列表或数组中,这样我就可以与 UI 上的任何数据进行比较。


慕后森
浏览 204回答 2
2回答

偶然的你

用JSoup您可以考虑使用 JSoup,而不是自己解析它。https://en.wikipedia.org/wiki/Jsoup使用 JSoup,您可以删除所有 html 并通过以下方式获取文本:String html = "<p>example</p>";Document doc = Jsoup.parse(html);System.out.println(doc.text()); // doc.text() returns the text only from the html这将输出:example使用 JSoup,您还可以找到具有特定 id 的元素,以便更轻松地将它们分开。String html = "<dt>example</dt>";Document doc = Jsoup.parse(html);Elements dts = doc.getElementsByClass("dt");

慕仙森

有点想通了,根据双线拆分字符串,然后将其存储在一个列表中,并检查我需要验证的元素是否包含在该列表中public void verifyEachCommonAcronymsAndAbbreviationsForAPB(String itemLocatorP1, String itemLocatorP2, String txtFromDB) {&nbsp; &nbsp; &nbsp; &nbsp; String[] txt = new String[3];&nbsp; &nbsp; &nbsp; &nbsp; boolean compareValue1 = false, compareValue2 = false;&nbsp; &nbsp; &nbsp; &nbsp; WebElement abbreviation = driver.findElement(By.xpath(itemLocatorP1));&nbsp; &nbsp; &nbsp; &nbsp; WebElement fullName = driver.findElement(By.xpath(itemLocatorP2));&nbsp; &nbsp; &nbsp; &nbsp; String p1, p2;&nbsp; &nbsp; &nbsp; &nbsp; if((abbreviation.isDisplayed()) && (fullName.isDisplayed())) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; getMenu().scroll_To_View_Web_Element(itemLocatorP1);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p1 = getUITxt(itemLocatorP1);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; getMenu().scroll_To_View_Web_Element(itemLocatorP2);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p2 = getUITxt(itemLocatorP2);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txt[0] = p1;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txt[1] = p2;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; catch(Exception e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txt[0] = "Blank";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Array txt Exception-> " + txt[0]);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // removing some html txt from the txtFromDB so that it can match with the UI&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("<dt>", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("</dt>", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("<dd>", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("</dd>", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll(">", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("</dl>", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("</dl", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("<dl style=", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("float: left; text-align: left; width: 50%;", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("\"\"", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("&nbsp;", " ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("amp;", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("&nbsp;", " ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("&rsquo;s", "’s");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("&ndash;", "–");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; txtFromDB = txtFromDB.replaceAll("(?m)^[ \t]*\r?\n", "");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //System.out.println("DB Txt -> " + txtFromDB);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String[] splitArrDB = txtFromDB.split("\\n");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List<String> acronymsList = new ArrayList<>();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(int i = 0 ; i < splitArrDB.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; acronymsList.add(splitArrDB[i] + splitArrDB[i]);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(String temp : acronymsList) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if((temp.contains(txt[0]))) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Found " + txt[0] + " in the list");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compareValue1 = true;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //System.out.println("still searching.....");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(String x : acronymsList) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if((x.contains(txt[1]))) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Found " + txt[1] + " in the list");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compareValue1 = true;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //System.out.println("still searching.....");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java