<li
rdf:resource="http:/ /www.melonfire.com/community/columns/trog/article.ph
p?id
=71" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=62" />
rdf:Seq>
< を配置することもできます;image> ブロックを使用して、チャンネル ロゴの URL を投稿できるようにします。
つまり、肉については、RSS1.0ドキュメント内のすべてのもの
<アイテム>
<rdf:Seq>
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=100" />
< ;li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=71" />
<li
rdf:resource="http://www.melonfire.com/community/columns/trog/article.ph
p?id
=62" />
rdf:Seq>
この例では、
RSS1.0 ファイルは、手動で作成されたかどうかに関係なく、非常に直感的で明確であることがわかります。またはプログラミングを通じて、非常に簡単に作成できます。上記の例と説明は単なる例です。一般に、 RSS1.0 および RDF を使用すると、さらに多くのことができます。詳細については、記事の最後にあるリンクを参照してください。その前に、RSS1.0 ドキュメントを自分の Webサイト内で。 4)
新鮮な肉
技術的には なので、RSS はよく構造化されています XML ドキュメントなので、標準の XML プログラミング手法を使用して処理できます。主なテクノロジーは 2 つあります: SAX (XML 用の簡易 API) と DOM (ドキュメント オブジェクト)モデル)。
SAX パーサーは、XML 文書全体を走査して、異なるタイプのタグに遭遇したときに特定の関数を呼び出すことによって機能します。たとえば、特定の関数を呼び出して開始タグを処理し、別の関数を呼び出して終了タグを処理し、その後、その間のデータを処理する関数を呼び出します。パーサーの役割は、単にドキュメントを順番に走査することです。呼び出される関数は、検出されたタグの処理を担当します。タグが処理されると、パーサーはドキュメント内の次の要素 、 に進み、プロセスが繰り返されます。
一方、DOM パーサーは、XML 全体を取得することで機能します。 ドキュメントはメモリに読み込まれ、階層ツリー構造に変換されます。また、さまざまなツリー ノード (およびノードにアタッチされたコンテンツ) にアクセスするための API を提供します。再帰的処理方法と API 関数により、開発者はさまざまなタイプのノード (要素、属性、文字データ、コメントなど) を区別することができ、同時に、ドキュメント ツリーのノード タイプとノードの深さによって、さまざまなアクションを実行できるようになります。
SAX および DOM パーサーは、あなたや私のお気に入り - PHP を含むほぼすべての言語をサポートします。この記事では、PHP の SAX パーサーを利用して RDF例。 もちろん、DOM パーサーを使用するのも同様に簡単です。
この簡単な例を見て、覚えておいてください。これは、私が使用する RDF ファイルです。これは、http://www.freshmeat.net/ から直接選択したものです。 :
version="1.0" encoding="ISO-8859-1"?><
rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http:/ / purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<チャンネル
rdf:about="http://freshmeat.net/">
http://freshmeat.net /
Web の最大の Unix インデックスと、数千のクロスプラットフォーム オープン ソース ソフトウェアを維持しています
。 freshmeat.net データベースに細心の注意を払ってカタログ化されており、新しい
コードへのリンクが毎日追加されます。
<
dc: language>en-us dc :言語><
dc:件名>テクノロジーdc:件名><
dc:出版社>freshmeat.net<
dc:creator>freshmeat.net 寄稿者dc:creator>< ;
dc:rights>著作権 (c) 1997-2002 OSDNdc:rights><
dc:date>2002 - 02-11T10:20+00:00dc:date>
<
rdf:Seq>< ;
rdf:li rdf:resource="http://freshmeat.net/releases/69583/" /><
rdf:li rdf:resource="http://freshmeat.net/releases/69581/" />
rdf:Seq>
<画像
rdf:resource="http://freshmeat.net/img /fmII-button.gif" /><textinput rdf:resource="http://freshmeat.net/search/" />
<画像 rdf:about="http://freshmeat.net/img/fmII-button.gif">
http://freshmeat.net/
http://freshmeat.net/releases/69583/
<dc:date>2002-02-11T04:52-06:00dc:date>
http://freshmeat.net/releases/69581/
<dc:date>2002-02-11T04:52-06:00dc:date>
rdf:RDF>
次は分析です文档并显示その中データのPHP 脚本:
php
// XML ファイル
$file = "fm-releases.rdf",
// パーサーで使用する変数をいくつか設定します
$currentTag = "",
$flag = "",
// パーサー作成
$xp = xml_parser_create(),
// 要素を設定handler
xml_set_element_handler($xp, "elementBegin", "elementEnd"),
xml_set_character_data_handler($xp, "characterData"),
xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, TRUE),
// XML ファイルを読み取ります
if (!($fp = fopen($file, "r")))
{
die ("$file を読み取れませんでした"),
}
// データを解析
while ($xml = fread($fp) ))
{
if (!xml_parse($xp, $xml, feof($fp)) )
{
die("XML パーサー エラー: " .
xml_error_string(xml_get_error_code($ xp)))、