java - 无需浏览器即可解释 html 输出

标签 java html string-formatting

有没有办法将java字符串中存在的html代码格式化为浏览器在java本身没有浏览器的情况下显示的相应输出? 前任: 可以说字符串是,

    <ul>
        <li>red</span></li>
        <li>green</span></li>
        <li>orange<br /></span></li>
    </ul>
    <br />number list:<br />
    <ol>
        <li>one</li>
        <li>two</li>
        <li>three
            <ul>
                <li>embedded bullet
                    <ul>
                        <li>again&nbsp;
                            <ul>
                                <li>again
                                    <ul>
                                        <li>next one</li>
                                    </ul>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>four</li>
    </ol>

This is O/P:
outputString="
   • one
   • two
   • three
 number list:
   1. one
   2. two
   3. three
    •  embedded bullet
        • again
             • next one
   4. four"

然后格式化程序应该将其转换为输出字符串。

最佳答案

Java 中没有内置方法可以将 HTML 转换为格式化文本。您要么找到一个用 Java 编写的类似 lynx(纯文本)的浏览器来使用,要么您必须自己编写一个浏览器。

如果您的输入 HTML 非常简单且格式良好(如您的示例所示),则这相对简单。如果您想支持在线找到的野生 HTML,这是一项非常复杂的任务。想想 CSS、Javascript 和列布局,它们试图响应您渲染的水平像素数量。

最简单的部分是解析 HTML,因为有很多解析器可供使用。例如我用过JSoup成功了。复杂的部分是呈现与您在实际浏览器中看到的文本类似的文本。布局引擎是浏览器中最棘手的部分之一。

关于java - 无需浏览器即可解释 html 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52698149/

相关文章:

java - 使用 Java 构建 HTML 文件的最佳方法是什么?

html - Twitter Bootstrap 侧边栏扩展到底部

python - Django RawQuerySet.__repr__ : not enough arguments for format string

python - 使用 format() 舍入、对齐和打印浮点列表

excel - 使用 MS Excel 将 MM :SS. 毫秒转换为秒

compilation - 如何防止在 Java 编译器中进行依赖检查

Java:url 编码完整保留 'allowed' 字符

java - Gradle munges 目录名称,同时创建包含所有依赖项的 jar

java - 类的词法包含类型

php - 输出到 HTML 时有些字母困惑