私はポッドキャストジェネレーターに取り組んでおり、非常にクールなものである XML dom の使用に切り替えました。最後のハードルは、リンクとエンクロージャーの要素です。
リンク要素は html リンクとして扱われ、エンクロージャーは自己閉鎖ではありません。代わりに、以下を生成します
<link />
<enclosure></enclosure>
RSS の目的では、次のようにする必要があります。
<link></link>
<enclosure/>
これが xml dom を使用する最初の理由であり、xml ファイルを適切にレンダリングするようになりましたが、rss/xml 有効なマークアップを作成して既存のファイルに追加する方法をまだ見つけていません。事前にthx。
更新:これは私が現在取り組んでいるコードです。xml は noscript に読み込まれるため、エンドユーザーはテーマに依存する JavaScript でアクセスでき、SEO 目的で検索エンジンによってインデックス化されます。CMS モードでは、処理のために xmlHTTPrequest 経由で php スクリプトに送信されるまで、ホルダーとして使用します。
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);