我有下面的Java内容,我只想剥离html标记,而不是新行字符
<p>test1 <b>test2</b> test 3 </p> //line 1
<p>test4 </p> //line 2
如果我在文本丰富编辑器中打开上面的内容,第1行和第2行以不同的行显示(不显示)
Jsoup.parse(aboveContent).text()
它删除所有html字符。但它在记事本的同一行中显示了所有的第1行和第2行。不知何故,Jsoup也删除了换行符。
我尝试的是:-
我还尝试替换
Jsoup.parse(contentWith\r\n-Insteadof-</p>Tag ).text()
但是,在同一行中,JSoup仍然会删除行尾字符(在调试器中,我可以看到line1和line2)。
如何使Jsoup只剥离html字符而不剥离新行字符?
因为text()
删除了所有空白字符,所以只有一行。但您可以使用StringBuilder
并在其中插入每一行:
final String html = "<p>test1 <b>test2</b> test 3 </p>"
+ "<p>test4 </p>";
Document doc = Jsoup.parse(html);
StringBuilder sb = new StringBuilder();
for( Element element : doc.select("p") )
{
/*
* element.text() returns the text of this element (= without tags).
*/
sb.append(element.text()).append('\n');
}
System.out.println(sb.toString().trim());
输出:
test1 test2 test 3
test4
您也可以这样做:
public static String cleanNoMarkup(String input) {
final Document.OutputSettings outputSettings = new Document.OutputSettings().prettyPrint(false);
String output = Jsoup.clean(input, "", Whitelist.none(), outputSettings);
return output;
}
这里最重要的是:1。白名单。none()-因此不允许使用任何标记2。。预打印(假)-因此不会删除换行符
问题内容: 如何从字符串中删除HTML标签,以便可以输出纯文本? 问题答案: 嗯,我尝试了您的功能,并在一个小例子上工作了: 你能举一个例子吗? Swift 4和5版本:
我使用JSoup解析字符串,其中包含超文本标记语言标记为纯文本。例如: 它可以很好地解析它,但问题是我的Java字符串是否包含
问题内容: 我在SQL Server2005中有包含HTML标记的数据,我想将所有内容都剥离掉,只在标记之间保留文本。理想的情况下也更换喜欢的东西带等 有没有简单的方法可以做到这一点,或者有人已经获得了一些示例T-SQL代码? 我没有添加扩展存储的proc之类的功能,因此更喜欢纯T-SQL方法(最好是一种与SQL 2000向后兼容的方法)。 我只想使用剥离的HTML来检索数据,而不是对其进行更新,
问题内容: 我已经看到很多表达式可以删除一个特定的标签(或许多指定的标签),一个可以删除除一个特定标签之外的所有标签,但是我没有找到一种方法来删除其中除许多除外(即所有除外)之外的所有标签。 PHP。我对正则表达式不是很满意,所以我需要帮助。:) 谢谢! 问题答案: 确实做到这一点。
问题内容: 是否存在现有的Java库,该库提供了一种从字符串中剥离所有HTML标记的方法?我正在寻找与PHP中的功能等效的东西。 我知道我可以使用这个问题中描述的正则表达式,但是我很好奇,是否可能已经有一种方法可以在Apache Commons库中的某个地方使用。 问题答案: 在开放了将近一个星期的问题之后,我可以肯定地说,Java API或Apache库中没有可用的方法可从字符串中剥离HTML标
问题内容: 我需要用ajax调用产生的html替换页面中div的内容。问题是html中包含一些必要的脚本,并且jquery html()函数似乎将它们剥离了,我需要过滤响应并仅获取特定的div。 我正在考虑一种解决方法,该方法是从ajax响应中提取所有脚本标签,然后将其附加到DOM中,但是这样做很麻烦。 这是我的代码; 但这是任何结论。我尝试了那里提出的解决方案,但没有一个起作用。 编辑:我似乎找