我有这样的事情:
<p id="tire">I need new tires for my car</p>
我正在尝试写一些能够突出我指定的单词的东西,但不是那些被认为是标签的东西。例如,如果我想强调“轮胎”,我理论上会看到:
<p id="tire">I need new <strong>tire</strong>s for my car</p>
但不幸的是,我明白了:
<p id="<strong>tire</strong>">I need new <strong>tire</strong>s for my car</p>
我只使用一个简单的replaceAll(oldWord,newFormat)。有没有可以提供帮助的图书馆?我正在使用jsoup来抓取我将要搜索的HTML。
答案 0 :(得分:3)
您可以使用选择方法getElementsContainingOwnText(String searchText)
来选择包含您要查找的单词的元素。在这种情况下,“轮胎”。
作为一个例子:
虚拟HTML
<html>
<head></head>
<body>
<p id="tire">I need new tires for my car</p>
</body>
</html>
我们的Jsoup代码:
Elements e = doc.getElementsContainingOwnText("tire");
for (Element el : e) {
el.text(el.ownText().replace("tire", "<strong>tire</strong>"));
}
生成的文档打印输出:
<html>
<head></head>
<body>
<p id="tire">I need new <strong>tire</strong>s for my car</p>
</body>
</html>
答案 1 :(得分:0)
使用查找和替换,在单词前添加一个空格,如“轮胎”
并替换<strong>tire</strong>s
答案 2 :(得分:0)
尝试:
replaceAll("tire", "<strong>tire</strong>");
replaceAll("id=\"<strong>tire</strong>\"", "id=\"tire\"");
这解决了特定问题,但你可以得到其他人认为