C# 将简单html“呈现”为字符串
是否有一个库可以将HTML解析为字符串对象,可以是Java、C或任何其他编程语言 这就是我的情况: 我有一些来自wysiwyg编辑器的文档,其中包含一些基本的html标记,如和其他类似的标记:C# 将简单html“呈现”为字符串,c#,java,javascript,python,language-agnostic,C#,Java,Javascript,Python,Language Agnostic,是否有一个库可以将HTML解析为字符串对象,可以是Java、C或任何其他编程语言 这就是我的情况: 我有一些来自wysiwyg编辑器的文档,其中包含一些基本的html标记,如和其他类似的标记: <p>This </p><font>etc</font><br> <span> and this, etc. 当导出到其他工具时,它会转换为纯文本,使其无法读取。我现在要做的是:全选>另存为x.html>在浏览器
<p>This </p><font>etc</font><br>
<span> and this, etc.
当导出到其他工具时,它会转换为纯文本,使其无法读取。我现在要做的是:全选>另存为x.html>在浏览器中打开>全选>粘贴
我知道它可以通过一个程序自动实现
有图书馆可以这样做吗?也就是说,要呈现简单的HTML?最好是一个字符串,我可以把它放到我的剪贴板。删除html标记是不够的,因为我会得到一条很长的线而没有回车。如果我做对了,你想删除所有html标记,使用C很容易:
var plainText = Regex.Replace(htmlString.Replace("<br>", Environment.NewLine).Replace(" ", " "), @"<[^>]*>", String.Empty);
在java中,您可以使用
您可以提供ParserCallback来处理文本并忽略标记。对于Python,您可以使用实体引用进行扩展,以执行您似乎需要的操作
from HTMLParser import HTMLParser
from htmlentitydefs import name2codepoint
class MLStripper(HTMLParser):
def __init__(self):
self.reset()
self.fed = []
def handle_data(self, d):
self.fed.append(d)
def handle_entityref(self, name):
self.fed.append(unichr(name2codepoint[name]))
def get_data(self):
return ''.join(self.fed)
def strip_tags(html):
s = MLStripper()
s.feed(html)
return s.get_data()
print strip_tags('<html>olle<</br>')
olle<
有两种方法可以做到这一点: 编写任意复杂的解析器来清理数据。这就是其他答案所建议的。如果你的投入不是很核心,这通常是快速的胜利 但是,如果您有非常复杂的输入,并且想要高保真度,则可以使用真正的浏览器 一个非常简单的选择是使用。下面是一个使用innerText从网页中提取文本的示例:
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
var ua = page.evaluate(function () {
return document.getElementById('myagent').innerText;
});
console.log(ua);
}
phantom.exit();
});
还有一些选项,如MSIE或。不过,我怀疑,沿着这些路径走下去,学习曲线会非常陡峭。听起来你没有渲染,而是想剥离html,对吗?@ChrisLively,没错。我不知道该选什么工作。render是我能想到的最接近的一个,因为我想保留etc。我更新了这个问题,以澄清.c+java+html=语言不可知,因为它们涵盖了地球上的大多数程序员?我想保留回车符,这样我就可以读它了。他说:“否则,我拥有的就是一条巨大的连续细绳,这很容易。”。现在看来可能是这样@斯蒂芬。那么...怎么样“容易吗?”斯蒂芬。以及其他代码,如&;等等。它在非ascii字符串方面有一些问题。。。阅读文档。。。