我刚刚开始从数据库中剥离HTML实体的任务,因为我们做了很多抓取,有些抓取器在输入时没有这样做:(
所以我开始写一堆查询,看起来像;
UPDATE nodes SET name=regexp_replace(name, 'à', 'à', 'g') WHERE name LIKE '%#xe0%';
UPDATE nodes SET name=regexp_replace(name, 'á', 'á', 'g') WHERE name LIKE '%#xe1%';
UPDATE nodes SET name=regexp_replace(name, 'â', 'â', 'g') WHERE name LIKE '%#xe2%';
这显然是一个相当天真的方法。我一直在想,是否有什么聪明的东西,我可以做的解码功能;也许通过正则表达式抓取HTML实体,如/&#x(..);/
,然后将 just%1
部分传递给ascii解码器,并重建字符串。...什么的..
我要继续提问吗?可能只有40个左右。
3条答案
按热度按时间9gm1akwq1#
使用pl/perlu编写一个函数,并使用此模块https://metacpan.org/pod/HTML::Entities
当然,你需要安装perl并且pl/perl可用。
**1)**首先创建过程语言pl/perlu:
**2)**然后创建如下函数:
**3)**然后可以这样使用:
oalqel3c2#
您可以使用xpath(HTML编码的内容与XML编码的内容相同):
8oomwypt3#
这就是我在Ubuntu 18上工作的原因。04与PG10,Perl没有解码一些实体,如
,
,出于某种原因。我用了Python3。从命令行
从SQL接口: