考虑从导出中获得的这个片段:
<!--l. 266--><p class="indent" >
<span
class="ptmr8t-x-x-90">“</span><span
class="ptmri8t-x-x-90">Blah blah blah, </span>
<span
class="ptmri8t-x-x-90">blah blah, blah blah blah, </span>
<span
class="ptmri8t-x-x-90">blah blah, blah blah, blah blah blah </span>
<span
class="ptmri8t-x-x-90">blah blah, blah </span>
<span
class="ptmri8t-x-x-90">blah blah, blah blah, blah</span>
<span
class="ptmri8t-x-x-90">blah blah, blah </span><span
class="ptmr8t-x-x-90">(</span><a
href="#X0-cite"><span
class="ptmr8t-x-x-90">Testing </span>
<span
class="ptmr8t-x-x-90">Ref, </span><a
href="#X0-cite"><span
class="ptmr8t-x-x-90">1980</span></a></a><span
class="ptmr8t-x-x-90">, pg.1)”</span>
</p>
编辑:我同意评论,没有一般的方法来指定什么是多余的 - 这就是我的意思:这个代码片段本质上是为了将单行表示为呈现的 HTML:
...并且由于内容行中的所有“bla bla ...”都意味着采用相同的格式,我认为它的各个部分带有指定相同格式的单独跨度标签(实际上它们是相同的标签, 不改变属性,只是<span class="ptmri8t-x-x-90">
) 是多余的——即使它们没有嵌套。
在此(例如 )上运行 XML 格式化程序/漂亮的打印机xml_pp -i a.xml
来缩进我们的标签将产生以下代码:
<!--l. 266--><p class="indent">
<span class="ptmr8t-x-x-90">“</span>
<span class="ptmri8t-x-x-90">Blah blah blah, </span>
<span class="ptmri8t-x-x-90">blah blah, blah blah blah, </span>
<span class="ptmri8t-x-x-90">blah blah, blah blah, blah blah blah </span>
<span class="ptmri8t-x-x-90">blah blah, blah </span>
<span class="ptmri8t-x-x-90">blah blah, blah blah, blah</span>
<span class="ptmri8t-x-x-90">blah blah, blah </span>
<span class="ptmr8t-x-x-90">(</span>
<a href="#X0-cite">
<span class="ptmr8t-x-x-90">Testing </span>
<span class="ptmr8t-x-x-90">Ref, </span>
<a href="#X0-cite">
<span class="ptmr8t-x-x-90">1980</span>
</a>
</a>
<span class="ptmr8t-x-x-90">, pg.1)”</span>
</p>
注意这里:
- 我们有
<span class="X">text A, </span><span class="X">text B, </span>
没有意义的序列,因为它们可以简化为<span class="X">text A, text B, </span>
- 我们有双重嵌套
<a href="#X0-cite">
- 再次毫无意义,可以没有内部的
最终,我想运行一些东西,并获得以下“压缩”代码:
<!--l. 266--><p class="indent" >
<span
class="ptmr8t-x-x-90">“</span><span
class="ptmri8t-x-x-90">Blah blah blah,
blah blah, blah blah blah,
blah blah, blah blah, blah blah blah
blah blah, blah
blah blah, blah blah, blah
blah blah, blah </span><span
class="ptmr8t-x-x-90">(<a
href="#X0-cite">
Testing
Ref,
1980</a>
, pg.1)”</span>
</p>
...其中保留了文本空白(并且在每一行上分别删除了多余标签的各个部分),并且处理了诸如<a href="#X0-cite">
中断<span>
s 序列之类的情况;然后我可以美化为:
<!--l. 266--><p class="indent">
<span class="ptmr8t-x-x-90">“</span>
<span class="ptmri8t-x-x-90">Blah blah blah,
blah blah, blah blah blah,
blah blah, blah blah, blah blah blah
blah blah, blah
blah blah, blah blah, blah
blah blah, blah </span>
<span class="ptmr8t-x-x-90">(<a href="#X0-cite">
Testing
Ref,
1980</a>
, pg.1)”</span>
</p>
是否有(Linux)命令行工具可以帮助我进行描述的“压缩”?awk
或者正则表达式脚本可以做到这一点,我猜 - 但这似乎有点复杂......
非常感谢您的任何答案,
干杯!