当前位置: 首页 > 知识库问答 >
问题:

如何在超文本标记语言标记中选择文本,而周围没有标记(JSoup)

金英华
2023-03-14

我想选择强标签内的文本,但不在其下的div。。。

有没有可能直接与jsoup合作?

我的选择尝试(不工作,选择强标签内的完整内容):

Elements selection = htmlDocument.select("strong").select("*:not(.dontwantthatclass)");

HTML:

<strong>
   I want that text
   <div class="dontwantthatclass">
   </div>
</strong>

共有3个答案

狄阳秋
2023-03-14

我猜您使用的是jQuery,所以可以在“strong”元素上使用“innerText”属性:

var selection = htmlDocument.select("strong")[0].innerText;

https://jsfiddle.net/scratch_cf/8ds4uwLL/

PS:如果你想把检索到的文本包装成一个“强”标记,我认为你必须构建一个新元素,比如$('

施宏大
2023-03-14

看看jsoup必须处理的各种方法https://jsoup.org/apidocs/org/jsoup/nodes/Element.html.你可以使用remove()removeChild()等等。你可以使用regex。下面是一个示例正则表达式,它匹配开始标记和结束标记,还附加了

所以你可以这样做

selection.replace(/<([^ >]+)[^>]*>.*?<\/\1>|<[^\/]+\/>/ig, "");

您可以进一步修改此正则表达式以匹配大多数情况。

你可以做的另一件事是,使用javascript或vbcript进一步处理变量:-

Elements selection = htmlDocument.select("strong")

jquery代码如下:-

var removeHTML = function(text, selector) {
    var wrapped = $("<div>" + text + "</div>");
    wrapped.find(selector).remove();
    return wrapped.html();
}

有了正则表达式,你可以使用jsouText()方法来获取和删除不需要的字符串。

焦兴为
2023-03-14

您正在寻找ownText()方法。

String txt = htmlDocument.select("strong").first().ownText();
 类似资料:
  • 我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加

  • 出于某种原因,我通过POST提交的表单发送的是选项文本,而不是表单的选项值。这是我的选择声明: 当我用PHP打印我的$\u POST数组时。我有: 我对jquery特别陌生,我使用jquery以模态的方式呈现表单,因此我将粘贴下面的完整表单/div和javascript,以防相关: return_frequency()是一个php函数,根据输入返回“每2周”或“每周”。 我错过了什么?

  • 我正在工作的工具提示和从后端我将获得数据与html标记。我需要在工具提示中显示相应的标签中的相应数据。例如,我将从后端获得Hello用户单击此处。我必须显示为你好用户在h1格式,点击这里应该是一个锚。我尝试了这两个功能,并取代其不工作。 具有以下功能: 替换: https://codesandbox.io/s/serene-fast-u8fie?file=/App.svelte

  • 我想在每个文本之后使用jsoup提取一个文本。有没有办法选择它? 示例代码如下: 当它完成时,它会创建自动id示例id=123

  • 我想提取一个文本后,每个标签使用jSoup。有什么方法可以直接选择它,还是我必须执行。

  • 对于上面的html内容,我如何使用Jsoup解析并获取文本 当我使用 我得到了这样的东西