我正在开发一个播客生成器,我已经切换到使用 XML dom,非常酷的东西。最后一个障碍是链接和外壳元素。
链接元素被视为 html 链接,并且外壳不会自动关闭。相反,它产生以下
<link />
<enclosure></enclosure>
出于 RSS 目的,它应该是
<link></link>
<enclosure/>
这是使用 xml dom 的最初原因,它现在可以正确渲染 xml 文件,但我仍然没有找到如何创建 rss/xml 有效标记以附加到现有文件。提前谢谢。
更新:这是我目前正在使用的代码。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);