XMLstarlet 修复图像标签并替换图像路径

XMLstarlet 修复图像标签并替换图像路径

我的文件夹中有多个 .XHTML 文件。顶部声明部分如下:

<?xml version="1.0" encoding="UTF-8"?>
<html xml:lang="en-us" lang="en-us" xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:ns="http://www.w3.org/2001/10/synthesis">
<head>

首先,我不想改变头顶部分。

我想批量处理文件并修复两件事,

  1. 正确终止图像结束标签,与和标签'/>'相同。<hr/><br/>
  2. 替换所有图像中的路径(保留名称),即来自

<img src="/v2/media/2004/05/draft/305/files/dbc0401.jpg" alt="Images" width="258" height="115">

<img src="graphics/dbc0401.jpg" alt="Images" width="258" height="115"/>

尝试过 xmlstarlet (v1.6.1),xmlstarlet fo --recover --html file.xhtml

但它改变了顶部声明部分,在顶部添加了额外的内容:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<?xml version="1.0" encoding="UTF-8"??>
<html xml:lang="en-us" lang="en-us" xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:ns="http://www.w3.org/2001/10/synthesis">
<head>

还警告无效标签

file.xhtml:8.54: Tag section invalid
<div id="aber-content"><section epub:type="chapter">
                                                     ^

什么是正确的命令?首先,我需要“试运行”来查看更改,如果可以,则应用到位。

相关内容