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>

まず頭の上部分は変えたくありません。

ファイルをバッチ処理して2つを修正したいと思います。

  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">
                                                     ^

正しいコマンドは何ですか?まず、「模擬実行」を実行して変更を確認し、該当する場合はその変更を適用する必要があります。

関連情報