PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。

encode_xml

encode_xml

1 を指定すると、モディファイアを付与したファンクションタグの値を XML フォーマットに適した形式にエンコード、XML に含めることができない制御文字を取り除いて出力を行います。

encode_xml は値が HTML や テンプレートタグを含んでいる場合、また環境変数 NoCDATA の指定によって動作がかわります。

encode_xml の動作パターン
環境変数 NoCDATA が 0 の場合 環境変数 NoCDATA が 1 の場合
値に HTML を含む場合 CDDATA ブロックで囲む 対象文字を変換する
値に HTML を含まない場合 対象文字を変換する 対象文字を変換する

CDATA ブロックで囲わない、文字を変換する場合の対象は下記になります。

対象文字 変換後
& &
" "
< &lt;
> &gt;
' &apos;

encode_xml と同様にエスケープを行うモディファイアについては記事「エスケープに関するモディファイアについて」を参照してください。

使い方

<MTSetVars>
text1=<p>HTML タグを含む文書です</p>
text2="HTML タグを含まない文書です"
</MTSetVars>
text1=<MTGetVar name="text1" encode_xml="1">
text2=<MTGetVar name="text2" encode_xml="1">

↓

text1=<![CDATA[<p>HTML タグを含む文書です</p>]]>
text2=&quot;HTML タグを含まない文書です&quot;

encode_xml と関連のあるグローバルモディファイア (7)