【问题标题】:interpreting output of html without browser在没有浏览器的情况下解释 html 的输出
【发布时间】:2019-03-12 21:09:28
【问题描述】:

有没有办法将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"

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

【问题讨论】:

  • 这到底是什么意思?浏览器显示带有布局元素的页面,而不是简单的字符串。您可以编辑问题以包含您希望从示例中生成的确切字符串吗?
  • 您已包含格式化文档的图像。如果您真的想自动生成类似的图像,您可以将 html 文本输入 java 的内置 JTextEditor,并将其输出呈现为图像。这可以接受吗?
  • @tucuxi 我在代码 sn-p 下包含了输出字符串。我基本上想要的是将带有 html 代码的字符串转换为浏览器显示但仅在 java 端显示的输出。上面的 outputString 是通过使用 unicode 字符(如(•、◦)创建的。
  • 这不是我要用 XSL-FO 做的事情,所以我删除了那个标签。

标签: java html string-formatting


【解决方案1】:

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

如果您的输入 HTML 非常简单且格式正确(如您的示例中所示),则这相对简单。如果你想支持网上找到的野 HTML,这是一项非常复杂的工作。想想 CSS、Javascript 和列布局,它们试图响应您渲染的水平像素数。

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

【讨论】:

  • 真正的问题变成了 - 您打算以什么方式或以何种格式/查看器使用此输出?例如,如果您打算在 Word 中阅读此输出,那么如果您想在 Text-File 中查看此输出,答案将完全不同>Some-Other-Browser,与另一种编程语言的输入对比...!最终,如果要阅读此文本,则最终将其发送回浏览器会引出问题,您为什么要首先删除格式!? JMHO :)
  • 我找到了解决这个问题的方法,我想从 xml 文件(使用 fop 和 xsl)生成 pdf,该文件在某些​​元素中包含 html,因此使用的这个 html 直接以 pdf 格式打印。我找到了一个 xhtml2fo 样式表,其中包含将 xml 元素中的 html 转换为 pdf 中正确输出所需的所有模板。
  • 但是,pdf 不是带有空格和换行符的文本;并且 xml 不是(通常)html。 pdf 中的文本包含大量字体和定位信息。是的,有多个库可以通过样式表将 xml 呈现为 pdf。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-22
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多