我的 Java 应用程序读取数据库行,并创建 iText PDF 文件。问题是我得到的行中的某些单元格包含粗体 HTML 标记,这意味着我还必须在各自的 iText 段落中显示粗体 block 。
例如,DB 行的一个单元格可能如下所示:
This is an <b>important</b> line and i <b>want</b> formatting in it
我目前所做的只是使用 jsoup 获取粗体
org.jsoup.nodes.Document doc = Jsoup.parse(input);
org.jsoup.select.Elements bold = doc.select("B");
System.out.println("[BODY: "+doc.body().text()+"] BOLD:>> " + bold.text());
我真正想做的是将字符串拆分为粗体部分和非粗体部分。所以我的问题的正确解决方案将输出
This is an
<b>important</b>
line and i
<b>want</b>
formatting in it
或类似的东西,以便我可以创建我的 iText block 并添加到我的段落中。 有没有办法用 Jsoup 来做到这一点?
最佳答案
您可以使用Node
代替Elements
:
final String html = "This is an <b>important</b> line and i <b>want</b> formatting in it";
Document doc = Jsoup.parse(html);
for( Node node : doc.body().childNodes() )
{
System.out.println(node.toString());
}
输出:
This is an
<b>important</b>
line and i
<b>want</b>
formatting in it
如果前导空格有问题,请使用node.toString().trim()
。
关于java - Jsoup简单的HTML标签分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521429/