開くタグとXML内のすべての項目を一致させ、閉じるタグを検索して置き換えます。

開くタグとXML内のすべての項目を一致させ、閉じるタグを検索して置き換えます。

WordPress エクスポート XML ファイルで、次の検索および置換ソリューションを検索しようとしています。

  1. 文字列の検索

    <content:encoded><![CDATA[HERE GOES ANY POSSIBLE POSTS TEXT including HTML tags]]></wp:meta_value>
    
  2. 閉じるタグを</wp:meta_value>次に置き換えます。</content:encoded>

問題は、XMLファイルに</wp:meta_value>開始タグだけでなく、他の多くの閉じるタグがあることです<content:encoded>

私が検索したsedソリューションのどれも役に立ちませんでした。どんなbashコマンドでも可能ですか?

PS:私の目標は、カスタムフィールドをデフォルトのWPコンテンツタグに変換することです。変更する元のコードは次のとおりです。

    <wp:postmeta>
        <wp:meta_key><![CDATA[page_content_0_text]]></wp:meta_key>
        <wp:meta_value><![CDATA[POST CONTENT GOES HERE]]></wp:meta_value>
    </wp:postmeta>

以下を行う必要があります。

<content:encoded><![CDATA[POST CONTENT GOES HERE]]></content:encoded>

<content:encoded>XMLの各投稿は一意ですが、<wp:postmeta>必ずしもそうではありません。

答え1

私たちはセクションのプロパティを活用しますCDATAできない]]>以下の部分文字列が含まれます。

perl -0777 -pe '
  s{
    <content:encoded>
    <!\[CDATA\[.*?]]> \K
    </wp:meta_value>
  }[</content:encoded>]xgs;
' your_file.input

関連情報