ポッドキャストジェネレータで作業していますが、XML domを使って非常にクールなものに切り替えました。最終的なハードルは、リンクとエンクロージャの要素です。javascriptを使用してrss/xmlリンク要素を作成するには
リンク要素はHTMLリンクとして扱われており、エンクロージャーは自己閉鎖ではありません。代わりに、それは
<link></link>
<enclosure/>
これは、XML DOMを使用するため、元の理由だった、それは正しくxmlファイルをレンダリングんが、私はまだ、まだ持っているべきであるRSSの目的のために、次の
<link />
<enclosure></enclosure>
を生成しますrss/xml有効なマークアップを作成して既存のファイルに追加する方法を見つけることができます。あらかじめThx。
更新:これは私が現時点で作業しているコードです。 xmlはnoscriptにロードされるので、エンドユーザー向けのテーマに依存するjavascriptでアクセスし、SEOの目的で検索エンジンで索引付けすることができます。 CMSモードでは、処理のためにxmlHTTPrequest経由でPHPスクリプトに送られるまで、私はホルダーとして使用します。
document.createElement
:から移動
var retFeedOptions =document.getElementsByTagName('noscript')[0].innerText;
parser=new DOMParser();
newFeed=parser.parseFromString(retFeedOptions,"text/xml");
newEntry=newFeed.createElement('item');
newXtitle=newFeed.createElement('title');
newXlink=newFeed.createElement('link');
newXdescription=newFeed.createElement('description');
newXpubdate=newFeed.createElement('pubDate');
newXguid=newFeed.createElement('guid');
newXenclosure=newFeed.createElement('enclosure');
newEntry.appendChild(newXtitle);
newEntry.appendChild(newXlink);
newEntry.appendChild(newXdescription);
newEntry.appendChild(newXpubdate);
newEntry.appendChild(newXguid);
newEntry.appendChild(newXenclosure);
var RSSchannel =newFeed.getElementsByTagName('channel')[0];
var nextItemNode =newFeed.getElementsByTagName('item')[0];
RSSchannel.insertBefore(newEntry,nextItemNode);
document.getElementsByTagName('noscript')[0].innerHTML=(new XMLSerializer()).serializeToString(newFeed);
これを生成するために使用しているコードを表示する必要があります。 – JAAulde
謝罪します。私が作業しているコードがOPに追加されました。 – Richard
エンクロージャー要素は正常に機能しますが、リンク要素はまだhtmlリンク要素を生成します。 – Richard