当前位置: 首页 > 面试题库 >

从JTextPane获取原始文本

栾和玉
2023-03-14
问题内容

在我的应用程序中,我使用JTextPane来显示一些日志信息。因为我想突出显示文本中的某些特定行(例如错误消息),所以将设置contentType为“
text/html”。这样,我可以设置文本格式。

现在,我创建一个JButton,将其内容复制JTextPane到剪贴板中。这部分很简单,但是我的问题是,当我调用时myTextPane.getText(),我得到了HTML代码,例如:

<html>
  <head>

  </head>
  <body>
    blabla<br>
    <font color="#FFCC66"><b>foobar</b></font><br>
    blabla
  </body>
</html>

而不是只获取原始内容:

blabla
foobar
blabla

有没有办法只获取JTextPane纯文本格式的内容?还是我需要自己将HTML转换为原始文本?


问题答案:

基于以下问题的公认答案:从Java字符串中删除HTML

MyHtml2Text parser = new MyHtml2Text();
try {
    parser.parse(new StringReader(myTextPane.getText()));
} catch (IOException ee) {
  //handle exception
}
System.out.println(parser.getText());

Html2Text我链接到的答案上找到的课程的稍作修改的版本

import java.io.IOException;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;

public class MyHtml2Text extends HTMLEditorKit.ParserCallback {
    StringBuffer s;
    public MyHtml2Text() {}
    public void parse(Reader in) throws IOException {
        s = new StringBuffer();
        ParserDelegator delegator = new ParserDelegator();
        delegator.parse(in, this, Boolean.TRUE);
    }
    public void handleText(char[] text, int pos) {
        s.append(text);
        s.append("\n");
    }
    public String getText() {
        return s.toString();
    }
}

如果您需要更细粒度的处理,请考虑实施更多由定义的接口HTMLEditorKit.ParserCallback



 类似资料:
  • 问题内容: 我在相当基本的android开发水平上。 我想从诸如“ http://www.google.com”的页面获取文本。(我将使用的页面只有文本,因此没有图片或类似的东西)所以,要明确:我想将页面上的文本写入应用程序中的字符串等。 我尝试了这段代码,但是我什至不知道它是否能满足我的要求。 无论如何我都无法收到任何文字。我应该怎么做? 问题答案: 从您提供的示例代码中,您甚至没有读取请求的响

  • 问题内容: 我正在尝试从文件夹中包含在项目中的原始文件获取。但是无论如何,我都会得到一个。 该文件是一个文件,也尝试过使用,也不起作用。使用DOES 播放两个文件都可以。 的回报: 我的代码: 错误: 问题答案: 尝试这种方法,用作您的inputStream。沿着这个地方: 返回一个InputStream 编辑:如果您使用上述方法,请删除这些代码 希望这有帮助,祝你好运!^^

  • 问题内容: 有没有办法从获取原始/原始JSON值? 问题: 现在是,但是我需要原始字符串。 有没有办法获得这个原始价值?另外,我无法更改创建方式(例如更改设置),因为它作为参数传递给我的课程… (参考:原始的NJsonSchema问题) 问题答案: 您无法获取原始字符串,无法识别日期字符串并将其转换为自身内部的结构。如果您这样做,则可以看到以下内容: 但是,您可以通过执行以下操作以ISO 8601

  • 问题内容: 我在视图中有一个附加的项目清单: 我正在处理指令中函数中的click事件,将其作为对被单击对象的引用,但是我得到的是对标签的引用,而不是对标签的引用。然后,我必须做这样的事情才能得到: 有没有一种简单的方法可以获取对绑定元素的引用,而无需在我的指令中执行DOM操作? 问题答案: 您需要代替。

  • 问题内容: 我是ANTLR初学者,想计算符号的SHA1-哈希值。 我的简化示例语法: 当词法分析器删除所有空白时,将使用不同的字符串,但是不幸的是,获得了相同的SHA1-Hash值。 是否有可能在所有跳过的空格和其他通道的文本之间获得规则的“原始”文本? (我想到的一种可能性是将所有字符都包含在-和-lexer规则中,但是还有更多规则,因此这不是很实用。) 我使用标准的ANTLRInputStre

  • 问题内容: 我正在尝试在Android Studio的res \ raw文件中保留一个.txt文件,并读取/解析该文件。我在“ res”目录(未创建)中创建的名为“ raw”的文件夹中有一个文件“ my_file.txt”。 我认为我的主要问题是:创建File对象(与Scanner对象一起使用)时,应该为文本文件传递什么路径? 这是我的代码: 问题答案: 认为您正在寻找符合以下条件的东西 其中ct