perl - 如何将一个文件上的两个 html 标签拆分为单独的 lucene 文档?
问题描述
我有这样的html数据:
<DOC>
<DOCID> D1-111 </DOCID>
<TITLE> this is title </TITLE>
<TEXT>
This is content
</TEXT>
</DOC>
<DOC>
<DOCID> D1-112 </DOCID>
<TITLE> this is title on D1-112 </TITLE>
<TEXT>
This is content on D1-112
</TEXT>
</DOC>
如何创建里面的每个内容<DOC></DOC>
是一个 lucene 文档所以基于 html 数据我有 2 个 lucene 文档?
解决方案
试试这个:
my $str ='<DOC>
<DOCID> D1-111 </DOCID>
<TITLE> this is title </TITLE>
<TEXT>
This is content
</TEXT>
</DOC>
<DOC>
<DOCID> D1-112 </DOCID>
<TITLE> this is title on D1-112 </TITLE>
<TEXT>
This is content on D1-112
</TEXT>
</DOC>';
my $fcnt = 1;
while($str=~m/<DOC[^>]*>((?:(?!<\/DOC>).)*)<\/DOC>/gs)
{
my $docf = $&; my $filename = "Lucena\_$fcnt\.txt";
writeFile($filename, $docf); $fcnt++;
}
sub writeFile
{
my ($file, $cnt) = @_;
open(FILE, ">", $file) || die "Couldn't write the file: $!\n";
print FILE $cnt;
close(FILE);
}
推荐阅读
- html - 单词在 HTML 中不断中断
- sql - Spark SQL - “包含”功能的替代方案
- html - vuejs:移动和显示视图中的粘性页脚
- vba - 在演示部分的开头和结尾处导入幻灯片
- r - 如何将行附加到具有不同 clumn 类型的 data.frame?
- php - 如何将自定义字段添加到 Moodle 语言电子邮件字符串 (newusernewpasswordtext)
- html - Testcafe:如何不是从 html 代码(选择器)而是在 UI 上的字段中获取文本
- ruby-on-rails - Ruby : Watir : 如何避免程序从 Watir::Exception::Error 终止
- serialization - akka.net 持久性自定义序列化程序没有被调用
- php - 如何获取 PHP OCI 的 SQL 查询参数列表?