Regex s HTML内容,而HTML::FormatText将跳过它。我真想知道为什么这个解决方案被否决了。这是对这个问题的准确回答,而且效果很好。上面所有的警告都是正确的,但是对于这样的请求有一些有效的用例,比如在测试或开发场景中,您只想在webinterfac
Regex s HTML内容,而HTML::FormatText将跳过它。我真想知道为什么这个解决方案被否决了。这是对这个问题的准确回答,而且效果很好。上面所有的警告都是正确的,但是对于这样的请求有一些有效的用例,比如在测试或开发场景中,您只想在webinterfac,regex,postgresql,Regex,Postgresql,s HTML内容,而HTML::FormatText将跳过它。我真想知道为什么这个解决方案被否决了。这是对这个问题的准确回答,而且效果很好。上面所有的警告都是正确的,但是对于这样的请求有一些有效的用例,比如在测试或开发场景中,您只想在webinterface中查看一些数据,而不创建任何PostgreSQL或其他代码。为了达到这个目的,它就像魅力一样+1@Olaf向下投票,因为这对于索引(例如索引)来说是不够的-您必须至少处理像“这样的实体和其他可能被转义的特殊字符,所以这种方法可能太过简单,无法
s HTML内容,而
HTML::FormatText
将跳过它。我真想知道为什么这个解决方案被否决了。这是对这个问题的准确回答,而且效果很好。上面所有的警告都是正确的,但是对于这样的请求有一些有效的用例,比如在测试或开发场景中,您只想在webinterface中查看一些数据,而不创建任何PostgreSQL或其他代码。为了达到这个目的,它就像魅力一样+1@Olaf向下投票,因为这对于索引(例如索引)来说是不够的-您必须至少处理像“
这样的实体和其他可能被转义的特殊字符,所以这种方法可能太过简单,无法用于任何实际用途。您是否曾经解决过XHTML特定XML实体的问题,例如第1行:实体“nbsp”未定义“?Hi@Jan Willemgmeyling,现在最好不要在文本UTF8中使用实体,使用真正的chr(160)或输入XML作为真正的UTF8文本…只使用基本实体,
,
和
…用于将无效文本转换为有效文本(例如xmlelement(名称foo,'a>B')
)并强制转换为XML以保留有效的XML(例如,'B'::XML
)…在这两种chr(160)
中,将被编码为UTF8。
CREATE FUNCTION extract_contents_from_html(text) returns text AS $$
use HTML::TreeBuilder;
use HTML::FormatText;
my $tree = HTML::TreeBuilder->new;
$tree->parse_content(shift);
my $formatter = HTML::FormatText->new(leftmargin=>0, rightmargin=>78);
$text = $formatter->format($tree);
$$ LANGUAGE plperlu;
select extract_contents_from_html('<html><body color="white">Hi there!<br>How are you?</body></html>') ;
extract_contents_from_html
----------------------------
Hi there!
How are you?
WITH needinfo AS (
SELECT *, xpath('//p[@class="fn"]//text()', xhtml)::text[] as frags
FROM t
) SELECT array_to_string(frags,' ') AS my_p_fn2txt
FROM needinfo
WHERE array_length(frags , 1)>0
-- for full content use xpath('//text()',xhtml)
CREATE OR REPLACE FUNCTION strip_tags(TEXT) RETURNS TEXT AS $$
SELECT regexp_replace(
regexp_replace($1, E'(?x)<[^>]*?(\s alt \s* = \s* ([\'"]) ([^>]*?) \2) [^>]*? >', E'\3'),
E'(?x)(< [^>]*? >)', '', 'g')
$$ LANGUAGE SQL;
select regexp_replace(content, E'<[^>]+>', '', 'gi') from message;