XMLの更新履歴の欄を作りたい。

[新着] Webテンプレートを仮オープンしました



0   名前: マッコル : 2006/11/10(金) 10:23  ID:SF3ra2PP
【現在の状況】
→ RSSエディタ Headline-EditorLite版(http://www.infomaker.jp/editorlite/)にてホームページの更新履歴ページ(XML)を作っています。

【何をしたいのか】
→ ロボットエンジンが拾ってくれる形式にて、トップページにXMLページのRSS欄を表示させたい。
<DIV style="width:40em;height:8em;overflow:auto;">
更新履歴エリア
</DIV>
)のような形(無理なら他の方法で)で、”更新履歴エリア”部分に3行分位XML情報を表示させる。

日付 タイトル
日付 タイトル
日付 タイトル

上記のことが出来れば更新履歴ページに行かずに簡単に更新されてかわかる。

以上のことが出来る方法を教えて下さい。

1   名前: ciel : 2006/11/10(金) 10:23  [URL]  ID:dClGIdJH
わたしは大黒屋本舗さんの下記の物を使わせて貰っています
http://www.daikoku-ya.org/BLOG/2005/12/29_1939.php

Let'sphpさんのところあるRSSブロガー
http://php.s3.to/net/#rss

MagpieRSS
http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS

サーバーによって設置できる場合と出来ない場合があります

2   名前: ciel : 2006/11/10(金) 10:23  [URL]  ID:dClGIdJH
追加です

大黒屋本舗さんのような
JavaScriptでページに埋め込むタイプの物は検索ロボットは読んでくれませんね

3   名前: マッコル : 2006/11/10(金) 10:23  ID:SF3ra2PP
ご回答ありがとうございます。

●スクリプトはロボットが読み込まない

●PHPとはCGI?SSIみたいのですか?
OCNの無料ホームページを使っているのですが、使えるかどうか?
PHPをもし設置できた場合、ロボットは拾ってくれるのでしょうか?
レッツPHPの設置方法が呼んでも不明です。お手数ですがわかりやすく教えて頂けませんでしょうか。

●div内に自分で記入

上記3タイプのみなんですね。

4   名前: ciel : 2006/11/10(金) 10:23  [URL]  ID:/N.fTtao
OCNの無料ホームページは使った事ないんですがプロバイダ系のサーバーで使えないところが多いので無理かもしれませんね
CGI,PHP、SSI等使えるサーバーに乗り換えるしか方法はないかもしれません

後、別手段で良く見かけますが更新履歴のページ作ってiframe使ってTOPページに配置するというのが思いつきます。

RSSを読み込んでという訳にはいきませんが。

5   名前: 匿名 : 2006/11/10(金) 10:23  ID:NIQBszG.
以下はエージェントを制限します(Gecko、MSIE のみ)ので、検索ロボットは拾ってくれません。

<!--<script type="application/javascript">-->
<script type="text/javascript">

// RSS ファイル
var uri1 = 'rss.xml';

// RSS から 3 行分くらい抽出して XHTML 断片に変換する XSL ファイル
var uri2 = 'rss2xhtml.xsl';

var xmlDoc;
var xslDoc;
var xsltProc;
var result;

if (document.implementation.hasFeature ('XML', null)) {
    // Gecko の場合
    try {
        // RSS ファイルの取得
        xmlDoc = document.implementation.createDocument ('', '', null);
        xmlDoc.async = true;
        xmlDoc.load (uri1);
        
        // XSL ファイルの取得
        xslDoc = document.implementation.createDocument ('', '', null);
        xslDoc.async = true;
        xslDoc.load (uri2);
        
        // XSLT プロセッサを作成
        xsltProc = new XSLTProcessor;
        xsltProc.importStylesheet (xslDoc);
        
        result = proc.transformToFragment (xmlDoc, document);
    } catch (e) {
    }
} else if (typeof ActiveXObject != 'undefined') {
    // MSIE の場合
    try {
        // RSS ファイルの取得
        xmlDoc = new ActiveXObject ('Msxml2.DOMDocument');
        xmlDoc.async = true;
        xmlDoc.load (uri1);
        
        // XSL ファイルの取得
        xslDoc = new ActiveXObject ('Msxml2.FreeThreadedDOMDocument');
        xslDoc.async = true;
        xslDoc.load (uri2);
        
        // XSLT プロセッサを作成
        xsltProc = new ActiveXObject ('Msxml2.XSLTemplate');
        xsltProc.stylesheet = xslDoc;
        xsltProc = proc.createProcessor ();
        xsltProc.input = xmlDoc;
        xsltProc.transform ();
        
        result = proc.output;
    } catch (e) {
    }
}

/*
以上の手順で、RSS の 3 行分のデータが result に格納される。
Gecko の場合、result は Node なので、そのまま apendChild する。
MSIE の場合、result は String なので、innerHTML で再パースする
*/

6   名前: 匿名 : 2006/11/10(金) 10:23  ID:jh2ZWQVE
すみません、>>5 は >>1-4 までの流れを読まずに投稿してしまいました。

当然のことながら、JavaScript ではなくサーバ側スクリプトで行うのが確実かつ安全です(検索ロボットも拾えますしね)。>>5-6 は、自分の手元でお遊び程度に使うものとして考えて下さい。

RSS から最初の 3 つの item を拾い、XHTML 断片(dl 要素)に変換する XSL。

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rss="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns="http://www.w3.org/1999/xhtml"
  exclude-result-prefixes="rdf rss dc">
  <xsl:output encoding="Shift_JIS"/>
  <xsl:template match="/">
    <dl>
      <dt><xsl:value-of select="rdf:RDF/rss:item[1]/dc:date"/></dt>
      <dd><xsl:value-of select="rdf:RDF/rss:item[1]/rss:title"/></dd>
      
      <dt><xsl:value-of select="rdf:RDF/rss:item[2]/dc:date"/></dt>
      <dd><xsl:value-of select="rdf:RDF/rss:item[2]/rss:title"/></dd>
      
      <dt><xsl:value-of select="rdf:RDF/rss:item[3]/dc:date"/></dt>
      <dd><xsl:value-of select="rdf:RDF/rss:item[3]/rss:title"/></dd>
    </dl>
  </xsl:template>
</xsl:stylesheet>

7   名前: マッコル : 2006/11/10(金) 10:23  ID:Nx/1ipOW
みなさん。
回答ありがとうございます。
御礼遅くなりましてもうしわけありません。

5・6を設置し試してみます。

スクリプトしかないようですね。

詳しく教えて頂きありがとうございます。

残念ながら、昨日、ホームページソフトの動作するパソコンがちょっと故障してしまい、修理しています。
復旧次第設置してみます。

一覧へ戻る