### **Web 环境(JavaScript)**
对于基于浏览器端的操作,可以利用DOM API或者jQuery等库进行转化。
javascript
function richTextToPlainText(richHTML) {
var div = document.createElement('div');
// 防止XSS攻击,应先对richHTML做安全过滤
div.innerHTML = DOMPurify.sanitize(richHTML);
return div.textContent || div.innerText;
}
// 使用示例:
var htmlString = '<p>Hello <strong>World!</strong></p>';
console.log(richTextToPlainText(htmlString)); // 输出:Hello World!
使用这种方法时,我们将待解析的HTML字符串设置到一个隐藏`
`标签中,并提取其textContent属性值即可得到不含样式的纯文本。
### **Python ( BeautifulSoup 库)**
当涉及到服务器后端操作时,如用 Python 处理从数据库或其他来源接收到的 HTML 内容,则可借助BeautifulSoup这样的第三方库:
from bs4 import BeautifulSoup
def convert_html_to_text(s):
soup = BeautifulSoup(s, 'html.parser')
text_content = soup.get_text()
# 可选地移除多余的空白符并标准化换行
cleaned_text = '\n'.join(text.strip() for text in text_content.split('\n'))
return cleaned_text
# 示例:
html_string = "<h1>Title</h1><p>A paragraph with <b>bolded text</b>.</p>"
print(convert_html_to_text(html_string))
# 输出: Title\nA paragraph with bolded text.
### **Java (Jsoup 库)**
同样在 Java 中也可以通过 Jsoup 这样的强大工具来进行类似的操作:
import org.jsoup.Jsoup;
public String stripTags(String source){
Document doc = Jsoup.parse(source);
return doc.body().text();
}
// 使用例子
String htmlContent = "<h3>This is an example.</h3>";
System.out.println(stripTags(htmlContent));
// 输出: This is an example.
### **Node.js(cheerio 或 jsdom )**
在 Node.js 生态系统下,我们可以选择 cheerio 类似 jQuery 的API风格或者是功能更全面接近完整浏览器行为的jsdom 来处理这个问题:
const Cheerio = require("cheerio");
let htmlString = `<h2>Welcome to the world of JavaScript!</h2>`;
let $ = Cheerio.load(htmlString);
let plainText = $('body').text(); // 注意这里直接取'body'是因为Cheerio默认加载的是整个文档片段
console.log(plainText); // 输出: Welcome to the world of JavaScript!
// 如果采用jsdom则方式如下:
const { JSDOM } = require('jsdom');
JSDOM.fromFile('/path/to/your/file.html') // or .fromURL(url)
.then(dom => dom.window.document.querySelector('*').innerText.trim())
.catch(err => console.error(`无法读取文件: ${err.message}`));
以上就是在多种主流编程语言及其相关环境下把富文本转化为纯文本的主要方法和步骤。开发者可以根据实际应用场景和技术栈选取最适合自己的解决方案。
### **Python ( BeautifulSoup 库)**
当涉及到服务器后端操作时,如用 Python 处理从数据库或其他来源接收到的 HTML 内容,则可借助BeautifulSoup这样的第三方库:
python
from bs4 import BeautifulSoup
def convert_html_to_text(s):
soup = BeautifulSoup(s, 'html.parser')
text_content = soup.get_text()
# 可选地移除多余的空白符并标准化换行
cleaned_text = '\n'.join(text.strip() for text in text_content.split('\n'))
return cleaned_text
# 示例:
html_string = "<h1>Title</h1><p>A paragraph with <b>bolded text</b>.</p>"
print(convert_html_to_text(html_string))
# 输出: Title\nA paragraph with bolded text.
### **Java (Jsoup 库)**
同样在 Java 中也可以通过 Jsoup 这样的强大工具来进行类似的操作:
java
import org.jsoup.Jsoup;
public String stripTags(String source){
Document doc = Jsoup.parse(source);
return doc.body().text();
}
// 使用例子
String htmlContent = "<h3>This is an example.</h3>";
System.out.println(stripTags(htmlContent));
// 输出: This is an example.
### **Node.js(cheerio 或 jsdom )**
在 Node.js 生态系统下,我们可以选择 cheerio 类似 jQuery 的API风格或者是功能更全面接近完整浏览器行为的jsdom 来处理这个问题:
javascript
const Cheerio = require("cheerio");
let htmlString = `<h2>Welcome to the world of JavaScript!</h2>`;
let $ = Cheerio.load(htmlString);
let plainText = $('body').text(); // 注意这里直接取'body'是因为Cheerio默认加载的是整个文档片段
console.log(plainText); // 输出: Welcome to the world of JavaScript!
// 如果采用jsdom则方式如下:
const { JSDOM } = require('jsdom');
JSDOM.fromFile('/path/to/your/file.html') // or .fromURL(url)
.then(dom => dom.window.document.querySelector('*').innerText.trim())
.catch(err => console.error(`无法读取文件: ${err.message}`));
以上就是在多种主流编程语言及其相关环境下把富文本转化为纯文本的主要方法和步骤。开发者可以根据实际应用场景和技术栈选取最适合自己的解决方案。