XMLで画像とリンク先の管理を行いたいです。
<sites>
<site>
<link></link>
<site>
<sites>
上記の<link></link>の間に下記のタグを入れてもうまくいきません。
<a href="http://(中略)" target="_blank"><img src="http://(中略).gif"></a>
このような使い方はXML本来の使い方ではなく、
実現しても汎用性が低いのは理解できるのですが、
それらをやむをえないこととして、
<a href="http://(中略)" target="_blank"><img src="http://(中略).gif"></a>
に手を加えることなく、そのままの形で放り込むにはどうしたらよいのでしょうか?
うまくいかないのは、うまくいくようにやっていないから、です。
それを扱うように意図したシステムを組めば問題なくうまくいきます。
XMLというのは、言語設計とアプリケーション実装(ソフトウェア・システム)
がセットになって始めて意図したとおりに機能するものです。実装をいじらず
に言語設計だけを拡張して意味のある結果を出すことはできません。
下記のように記述しているということですか?
<link> <a href="http://(中略)" target="_blank"><img src="http://(中略).gif"></a> </link>
だとすると、<a> や <img> も XML のタグとして認識されてしまいます。
このようなタグをXMLコンテンツ(文字列)として認識させるには、次のように記述します。
<link> <![CDATA[ <a href="http://(中略)" target="_blank"><img src="http://(中略).gif"></a> ]]> </link>
<![CDATA[ .... ]]> で囲まれた部分については、タグ文字や改行などのコントロール文字を含め、すべて <link> のコンテンツとして認識されます。
いつもご回答ありがとうございます。
>下記のように記述しているということですか?
そのとおりです。そういう風に説明するほうが簡潔でした。
望みどおりうまくいきました。ありがとうございます。
ご回答ありがとうございます。
そのとおりです。
>実装をいじらずに言語設計だけを拡張して意味のある結果を出すことはできません。
ご指摘ありがとうございます。
このXMLは下記のPHPスクリプトで活用するつもりでした。
function link(){
$xxx = simplexml_load_file(中略);
foreach($xxx -> site as $st){
$links .= $st -> link;
}
return $links;
}
echo link();
引き続き他の方からの回答をお待ちします。