プロが教える店舗&オフィスのセキュリティ対策術

通常の置換であれば、文字を指定して置換ができると思うのですが、こういった条件での置換はどのように行えますでしょうか?

例えば、1000ページ程度あるサイトで、<h1>タグにそれぞれの文章がセットされていたとします。
この文章を<h2>タグに囲まれた文章に変更したいです。

<h1>なんとかかんとか</h1>

<h2>なんとかかんとか</h2>

但し、重要なのは<h1>を<h2>に置換するという方法ではなく、<h1>~</h1>に記載されている文章を取得し、そのデータを<h2>~</h2>に持っていってはめ込むという手法でお願いいたします。

もちろん、各ページ内で書かれている<h1>の内容は異なるものです。
ローカルでもWEBからでもいいので、実現する方法を教えて頂けないでしょうか?

また、そのようなツールがある場合にはそちらの対応でも問題ありません。
ご存知の方いらっしゃいましたら宜しくお願いします。

A 回答 (5件)

ようはH1タグをH2タグへ変更されたいのでしたら「<H1>を<H2>へ置換する」処理と「<H1/>を<H2/>へ置換する」処理をされればよいかと思います。



Windows環境ですとサクラエディタにその機能があったかと思います。
Windows自体が持つ機能としてはPowerShell(やWSH)でしょうか。

https://sakura-editor.github.io/

http://www.atmarkit.co.jp/fwin2k/win2ktips/1039p …
http://www.atmarkit.co.jp/ait/articles/0306/28/n …

参考まで。
    • good
    • 0
この回答へのお礼

有難うございます。
<h1>などタグの置換ではありません、あくまで例としてh1としましたが、置換したいのは<h1>~</h1>の間にある情報を取得し、別の場所に置き換えます。なので、ちょっと置換という表現が正しいか不安です。

お礼日時:2018/12/17 13:34

複数のHTML&テキストファイルを一括置換 TextSS.net


http://textss.sakura.ne.jp/outline.html
    • good
    • 0

置換ではなく引用ですよ。


元のデーターに名前を付けて、貼りたいところに引用する。
名前ではなくオフラインで設定し引用することもできます。
    • good
    • 0

No.1です。



テキスト中のある一定の文字または文字列を、別の一定の文字または文字列に置き換えるのが置換です。
ですからご質問内容は・・・

> <h1>なんとかかんとか</h1>
>
> <h2>なんとかかんとか</h2>

ではなく、

<h1>ABCDE</h1>
  :
  :
<h2>あいうえお</h2>

とあったものを、

<h1>ABCDE</h1> ←(以前のままでよいのか不明)
  :
  :
<h2>ABCDE</h2>

といったことなのではないでしょうか?
であれば、ある開始タグから終了タグまでの間の文字列を抽出し(あるいは該当箇所についてはタグごと削除するなどし)、別の開始タグから終了タグまでの間の文字列をこれに置換する・・・ということではないでしょうか?
その辺の求める動作仕様(機能仕様)を質問にかかれたような概要ではなくもっと細かく具体化されることです。

で、それを1回の実行で出来るかどうかは動作仕様(機能仕様)次第ですが、先に示したような機能、特にスクリプト等を用いて動作仕様を細かく記述できる機能を使えば可能です。
参考まで。
    • good
    • 0

HTML パーサーを使って、


HTML ファイルからドキュメント構造を読み取り、
該当する箇所を抜き出し、
ドキュメント構造を書き換えて、
ドキュメント構造から HTML ファイルへ書き出す、
スクリプトなりプログラムを作りましょう。

HTML パーサーにはいろいろあるので、お好きなものをどうぞ
https://en.wikipedia.org/wiki/Comparison_of_HTML …
XPath や Selector が使えるパーサーなら、抜き出しが楽に実装できるのでお勧めです。

もし Web から読み取りならば HTTP クライアントを組み込みましょう
https://docs.microsoft.com/ja-jp/dotnet/api/syst …
https://openjdk.java.net/groups/net/httpclient/i …
https://ja.wikipedia.org/wiki/CURL
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!