问题标签 [htmleditorkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - HTMLDocument、HTMLEditorKit 和空格
当我运行以下代码时:
我得到以下输出:
但是,如果我将值更改content
为" "
:
我得到这个输出:
为什么内容是为LeafElement
构造的"x"
,而不是为构造的" "
?我想LeafElement
为" "
. 我做错了什么还是 or 有HTMLDocument
问题HTMLEditorKit
?
java - 我在哪里可以找到一个好的 HTMLEditorKit 教程/参考,它实际上解释了如何编辑 HTML 文档?
我的目的是编辑 HTML 文档,包括修改现有元素、删除元素和插入新元素。
我已经阅读了 HTMLEditorKit 和相关类的文档,以及 Sun 的 Java Trail 中的相关主题,但是关于实际 HTML 文档操作的信息很少。大多数讨论和示例都涉及阅读和解析 HTML,而不是真正编辑它。一些谷歌搜索仍然没有产生足够的解决方案,并且尝试通过一些编码试验和错误来解决任务主要导致异常。
我已经在 SO 中讨论了相关的问题和答案,但大多数答案都提出了一些替代方案,而我正在寻找 JDK 中的解决方案。或许 HTMLEditorKit 对于非 swing 应用程序用处不大,javax.swing 之外还有替代方案吗?
以下是我想学习如何执行的一些任务:
- 替换某些文本字段中的文本。
<script>
元素的基本编辑(查找/替换或正则表达式) 。- 为某些元素的边框着色。
- 完全删除某些标签(例如 flash 元素)。
假设 HTMLEditorKit 是 JDK 中最好的 HTML 编辑组件,您推荐什么教程或参考资料?
java - 为什么 Swing Parser 的 handleText 不处理嵌套标签?
我需要转换一些具有嵌套标签的 HTML 文本,以使用 css 属性装饰“匹配”以突出显示它(如 firefox 搜索)。我不能只做一个简单的替换(例如,想想如果用户搜索“img”),所以我试图只在正文中进行替换(而不是在标签属性上)。
我有一个非常简单的 HTML 解析器,我认为应该这样做:
我的问题是,当我调试它时,handleText 会被包含标签的文本调用!就像它只深入一层。有谁知道为什么?我需要对 HTMLParser 做一些简单的事情(没有使用太多)来启用嵌套标签的“正确”行为吗?
PS - 我自己想通了 - 请参阅下面的答案。简短的回答是,如果您将其传递给 HTML,而不是预先转义的 HTML,它就可以正常工作。嗬!希望这对其他人有帮助。
java - 将 HTML 插入 HTMLDocument 的正文
这似乎是一个如此简单的问题,但我遇到了这样的困难。
问题:
我有一些文本要插入到HTMLDocument
. 该文本有时也会指定一些 html。例如:
我HTMLEditorKit.insertHTML
用来在指定的偏移量处插入它。这工作正常,除非偏移量位于文档的开头(偏移量 = 1)。在这种情况下,文本被插入到head
文档中而不是body
.
例子:
我使用字体标签,所以我现在插入的内容将位于没有属性的字体标签中,因此不会影响格式。我需要知道这一点,因为最后一个参数 ,是必需的,直到运行时insertTag
我才能知道它的内容。stringToInsert
如果文档中已有文本(例如“1234567890”),则输出如下:
但是,如果偏移量为 1 并且文档为空,则结果如下:
其他注意事项:
- 这一切都是在
JEditorPane
. 如果有更好的方法JEditorPane
用潜在的 HTML 替换 a 中的文本,我也会对这些想法持开放态度。
任何帮助,将不胜感激。 谢谢!
java - 在 JEditorPane 中使用 HTML 格式化文本?
我正在尝试用 Java Swing 制作一个简单的电子邮件客户端。
我想允许用户以他们想要的任何方式来格式化他们的电子邮件,比如将文本的某些部分设置为粗体,其他部分设置为斜体等。换句话说,我正在尝试制作一个所见即所得的编辑器。格式化是在 HTML 中完成的。我正在使用 JEditorPane 来显示文本。
我尝试使用 JEditorPane 的 setText 和 getText 方法直接将标签添加到文本中。我可以使它适用于基本格式,但处理复杂格式非常困难。(例如,尝试从多标签元素中删除标签)
有没有更简单的方法来实现这一点?我看过 HTMLEditorKit 但它似乎不支持向特定字符串添加标签和/或替换特定字符串。
提前致谢。
html - 使用 Java 移除 HTML 移除对齐
我遇到了在 HTML 文档中删除对齐的问题。
我的问题是如何删除第一段的对齐而不影响第二段。如果我使用正则表达式,它也会删除第二段的对齐。我真的很感谢你对这个问题的任何评论。
java - 在 Java 中将 HTML 转换为纯文本
我需要将 HTML 转换为纯文本。我对格式的唯一要求是在纯文本中保留新行。新行不仅应该在 的情况下显示,<br>
而且其他标签也应该显示,例如<tr/>
,</p>
也导致新行。
用于测试的示例 HTML 页面是:
- http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter09/scannerConsole.html
- http://www.javadb.com/write-to-file-using-bufferedwriter
请注意,这些只是随机 URL。
我已经尝试了这个 StackOverflow 问题的答案中提到的各种库(JSoup、Javax.swing、Apache utils),以将 HTML 转换为纯文本。
使用 JSoup 的示例:
HTMLEditorKit 示例:
java - 在 JEditorPane 中禁用滚动到文本末尾
嗨
,我使用带有 HTMLEditorKit 的 JEditorPane 来显示具有换行能力的 HTML 文本。
问题是当我使用 .setText 方法设置它的内容时,它会自动滚动到该文本的末尾。
我怎样才能禁用它?
谢谢。
java - HTML ParserDelegator 和 ParserCallback 不起作用
所以我想做的很简单。我正在解析脚本标签的 HTML 文档,使用 ParserDelegator,并使用 ParserCallback 吐出脚本标签。但是当我运行这个程序时,它什么也没做。回调永远不会被调用。我的 html 文件路径是正确的,它确实包含脚本标签。它的格式也正确。
知道我做错了什么吗?我看过一些例子(比如这个:http ://www.java2s.com/Tutorial/Java/0320__Network/HTMLparserbasedonHTMLEditorKitParserCallback.htm )并且我在做基本相同的事情(除了我没有覆盖所有ParserCallback 的方法,我使用的是文件路径而不是 URL)。提前致谢。
java - 使用 Unicode (Java) 访问/更改 JEditorPane 的 html 加载元素 + HTMLEditorKit 问题
这将是一个很长的问题,所以请耐心等待:)
我的应用程序
我正在开发一个 Java(带有 JFrame GUI)桌面应用程序,它执行以下操作:
- 扫描 (.txt) 文件。
- 从这些文件中解析一些数字,对它们执行一些计算,最后将结果存储在字符串变量中。
- 以特殊(表格)格式输出这些数字。(注意:格式包括一些 Unicode(阿拉伯)字符。)
问题
前两部分进行得很顺利。然而,当我来到第三部分(格式化输出)时,我不知道如何显示这种特殊格式,所以,
- 在 Java 中显示特殊格式输出(表格)的最佳方式是什么?
注意:格式化 程序不会有帮助,因为它对表格没有适当的支持。
解决方案一:
我进行了研究,发现我可以使用 JEditorPane,因为它可以显示特殊格式,例如“html”。所以我决定创建一个具有所需(表格)格式的“html”页面,然后在 [JEditorPane][4] 上显示这个页面。我这样做并且进展顺利,直到我想将一些 html 元素的值更改为那些 (.txt) 文件中的解析数字。
- 如何访问 html 元素(例如
<td></td>
)并更改其值?
请注意,(.html)是使用 .html 在 JEditorPane 中加载的setPage(url)
。
Unicode 字符显示正确,但我无法更改某些元素值(例如,我想将值更改<td> 000,000,000 </td>
为<td> MainController.getCurrentTotalPayment() </td>
解决方案二:
我找到了一种解决方法,其中涉及使用 HTMLDocument 和 HTMLEditorKit,这样我可以使用 HTMLEditorKit 从头开始创建 (.html) 并使用kit.insertHTML
.
我已经使用上述方法成功添加了内容,并且我还能够添加来自 (.txt) 文件的解析数字,因为我将它们存储在我的 (MainController) 类中。不幸的是,Unicode 阿拉伯字符没有正确显示。
- 如何正确显示这些 Unicode 字符?
所以第一个解决方案缺乏对 html 元素的访问,而第二个解决方案缺乏 Unicode 支持!
我的同事建议我在可以访问我的 MainController.java 类的 html 文档中使用 JSP 代码。因此,将页面加载到 JEditorPane 中时已经更改了 html 元素。如果没有 JSP 的帮助,难道没有办法做到这一点吗?
其他一些人推荐使用JTidy,但在 Java 的 JDK 中没有办法做到这一点吗?
我对所有可能的解决方案持开放态度。请帮忙。
我的代码:一些代码内容被省略,因为它们不相关
主控制器.java
MyFormattedOutputSolutionOne.java:
MyFormattedOutputSolutionTwo.java:
htmlFormatTable.html:
感谢您阅读我冗长的多个问题线程,迫不及待地等待您的回答。
更新:
感谢@Howard 的这一见解,如果我用相应的 unicode(例如 ب = \u0628)替换阿拉伯字符,它可以正常工作,但必须有一种方法可以做到这一点而无需替换每个字符,对吧?