[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【放弃】80元求修改xhtml之二

本帖最后由 lxh623 于 2023-4-26 09:11 编辑

http://www.bathome.net/thread-65828-1-1.html
修改一下。直接的办法可能不行。
我这里有两个文件夹。一个是“梵文”,一个是“epub解包后”。后者包含许多文件夹。前者里面是几百个文件,比如,F28n1071_005.xhtml 。它的"text_3">(.{1})提取汉字,写入文本F28n1071_005.txt。而对应有个“J:\大藏经修改\epub解包后\F1071 釋教最上乘秘密藏陀羅尼集\OEBPS\juans”,里面一定有005.xhtml,它的"text_3">后面有可能是多个汉字(1-7个,参考上传的同音字txt),而且总数多半少一些。我想,按照F28n1071_005.txt的顺序修改005.xhtml,留下一个汉字。修改的行,文本F28n1071_005.txt留下空行。没有的就原位留下。
主要是解决同音字的问题(相同罗马字标注),同时有助于手动找出没有标注"text_3"的罗马字。

感觉复杂,但是,也许能够做到吧。
谢谢!

回复 2# newswan
没有明白,怎么有批处理?
谢谢!

如果手工修改,我的意思是提取文字。然后,五个一组去对001.xhtml。多个汉字那种,删除多余的汉字。
比如,F28n1071_003。
提取"text_3">(.{1}),也就是代码后面一个汉字,到文本F28n1071_003。
打开“J:\大藏经修改\epub解包后\F1071 釋教最上乘秘密藏陀羅尼集\OEBPS\juans”的003.xhtml,提取"text_3">(.{1,7})</span>,也就是中间的几个汉字,到文本003 。
第一个文本前面五行是:





第二个文本前面五行是:

由蒤

夸慔
叻粺
对应的行都包含,那么,到003.xhtml把第二个<span class="text_3">由蒤</span>换成<span class="text_3">蒤</span>。
第四第五类似。
但是,第二个文本会少一些,因为特征字符串不足,梵文没有替换完全,希望检查之后手动添加。

TOP

zaqmlp 发表于 2023-4-19 13:38

我上传文件夹名和文件名的两个文件。能不能完善一点点。谢谢!

TOP

回复 7# zaqmlp
梵文文件夹,和解包后的压缩文件,已经上传。谢谢!

TOP

本帖最后由 lxh623 于 2023-4-19 20:26 编辑

回复 9# zaqmlp
四位数确定的。前面两个是序号。就是B07n0023_003等等,第二位到第四位可以删除,B0023_003。或者我事先重新命名。
谢谢!

TOP

本帖最后由 lxh623 于 2023-4-21 07:41 编辑

T18n0894_001.xhtml没有这个。我不是上传了吗。
麻烦了。
文件名我全部重新修改了。
  1. B0023_003.xhtml
  2. D9025_001.xhtml
  3. D9025_003.xhtml
  4. F1071_001.xhtml
复制代码

TOP

本帖最后由 lxh623 于 2023-4-21 16:45 编辑

试了一下,好像没有达成目的。
例如,F1071_003.txt第14行,003.txt里面没有,就用F1071_003.txt第15行的字到003.txt第14行匹配,如果相同,就跳过;如果有多个汉字而且包含这个汉字,就继续修改003.xhtml。
能不能把两个文本的行和xhtml对应的"text_3">(.{1,7})</span>,虚拟编号?每一次增加一个序号。

另外一个思路。
修改多个汉字为一个。
F1071_003.xhtml提取"text_3">(.{1})</span>到F1071_003.txt。003.xhtml提取"text_3">(.{2,7})</span>到003.txt,003.txt删除重复行。

我在EmEditor用 [仕狿箘]筛选F1071_003.txt,只有一个汉字。那么,003.xhtml中全部"text_3">仕狿箘改为"text_3">仕。
但是,这一步怎么用批处理做到。是用003.txt同一行的2-7个汉字一个一个去搜索F1071_003.txt,如果搜索到只有一个相同的汉字,那么就这样修改。如果一个文档有两个不同汉字的结果,暂时不修改。最后,删除003.txt。

TOP

本帖最后由 lxh623 于 2023-4-24 17:01 编辑

一直没有答案,请允许我重新描述一下问题。
这里有两个文件夹。一个是“梵文”,一个是“epub解包后”。后者包含许多文件夹。前者里面是几百个文件,文件名如13楼。符号_前面的字符,是在“epub解包后”里面的子文件夹的名称前面的字符。
首先,从“梵文”中的文件提取字符,比如从B0023_003.xhtml中,提取<span class="text_3">(.{1,2})</span><span class="text_1">\((.{1,9})\)</span>,得到\1\t\2,写入文本B0023_003.txt。删除重复行。
然后到epub解包后\B0023 金剛般若波羅蜜經講義\OEBPS\juans中的003.xhtml中提取<span class="text_3">(.{2,7})</span><span class="text_1">\((.{1,9})\)</span>,得到\1\t\2,写入文本003.txt。删除重复行。
B0023_003.xhtml和相应子文件夹的003.xhtml是唯一的对应文件。
然后,B0023_003.txt和003.txt的每一行可以分别定义为^(.*)\t(.*)$。003.txt的\t后面部分(即\2)如果在B0023_003.txt是唯一的【严格意义上,\t\2$去搜索B0023_003.txt】,就在003.xhtml中,用B0023_003.txt这一行\t前面部分替换003.txt的\t前面部分。
如果不是唯一,就跳过。
谢谢!

TOP

放弃。因为epub解包的原件与xml或者大藏经相比,字符顺序有严重问题。
可能xml转html,再来处理,才行。

TOP

返回列表