Javascript 使用jQuery解析包含CDATA的RSS提要
我试图将RSS提要解析为一个数组,但该提要添加了CDATA标记并组合了某些元素 下面的代码通过rss提要(url)进行解析,并将某些元素添加到数组中。但是,当我查看提要本身时,它将多个关键元素组合在Javascript 使用jQuery解析包含CDATA的RSS提要,javascript,jquery,xml,sharepoint-2010,rss,Javascript,Jquery,Xml,Sharepoint 2010,Rss,我试图将RSS提要解析为一个数组,但该提要添加了CDATA标记并组合了某些元素 下面的代码通过rss提要(url)进行解析,并将某些元素添加到数组中。但是,当我查看提要本身时,它将多个关键元素组合在CDATA标记中 如何解析CDATA标记以获得可用的xml字段 代码 buildXMLDoc = function (url) { var list =[]; $(listXML).find('item').each(function (){ var el = $(t
CDATA
标记中
如何解析CDATA标记以获得可用的xml字段
代码
buildXMLDoc = function (url) {
var list =[];
$(listXML).find('item').each(function (){
var el = $(this);
console.log(el.find("title").text());
console.log(el.find("pubDate").text());
console.log(el.find("description").text());
list.push({title: el.find("title").text(), description: el.find("description").text(), modified: el.find("pubDate").text()});
});
return list;
};
XML
<?xml version="1.0" encoding="UTF-8"?>
<!--RSS generated by Microsoft SharePoint Foundation RSS Generator on 8/29/2017 10:23:18 AM -->
<?xml-stylesheet type="text/xsl" href="/_layouts/RssXslt.aspx?List=43aaf08e-0153-4f1d-9b46-e66bba563fde" version="1.0"?>
<rss version="2.0">
<channel>
<title>Webdocs: Test</title>
<description>RSS feed for the Test list.</description>
<lastBuildDate>Tue, 29 Aug 2017 14:23:18 GMT</lastBuildDate>
<generator>Microsoft SharePoint Foundation RSS Generator</generator>
<ttl>60</ttl>
<language>en-US</language>
<item>
<title>Alternative Methods for Determining LCRs</title>
<description><![CDATA[<div><b>Short Title:</b> Determining LCRs</div>
<div><b>Description:</b> <div class="ExternalClass6280076BC79848078688B86006BA554F"><p><span style="font-size:11.5pt;font-family:"calibri", "sans-serif"">This project is a carryover from the 2017 effort to identify an alternative method for calculating the Locational Minimum Installed Capacity Requirements (LCRs). </span></p></div></div>
<div><b>Governance Process Status:</b> Progress</div>
<div><b>Topic State:</b> Open/Current</div>
<div><b>Updated Placeholder:</b> updated</div>
]]></description>
<pubDate>Wed, 12 Jul 2017 13:41:06 GMT</pubDate>
</item>
Webdocs:测试
测试列表的RSS提要。
2017年8月29日星期二14:23:18 GMT
微软SharePoint基金会RSS生成器
60
恩美
确定LCR的替代方法
简称:确定LCR
描述:该项目是2017年确定计算位置最低装机容量要求(LCR)的替代方法工作的延续
治理过程状态:进展
主题状态:打开/当前
已更新的占位符:已更新
]]>
2017年7月12日星期三13:41:06 GMT
突出显示的项目应该是单独的元素。为了获得CDATA部分的详细信息,我建议使用jquery.contents()并按位置获取相关的子部分。如果位置改变,这可能会给你错误的结果,但这是可能的
var-listXML='1〕\
\
\
\
\
Webdocs:测试\
测试列表的RSS提要\
2017年8月29日星期二14:23:18 GMT\
微软SharePoint基金会RSS生成器
60\
恩美\
\
确定LCR的替代方法\
简称:确定LCR\
描述:该项目是2017年确定计算位置最低装机容量要求(LCR)的替代方法工作的延续\
治理过程状态:进展\
主题状态:打开/当前\
已更新的占位符:已更新\
]]>\
2017年7月12日星期三13:41:06 GMT\
';
var列表=[];
$(listXML).find('item').each(函数(){
var el=$(本);
var cdat=$(listXML).find('item description').contents();
log(cdat.eq(1.text()+cdat.eq(2.text());
console.log(cdat.eq(5.contents().eq(0.text()+cdat.eq(5.contents().eq(1.text));
console.log(cdat.eq(6.contents().eq(0.text()+cdat.eq(6.contents().eq(1.text));
list.push({标题:cdat.eq(2).text(),描述:cdat.eq(5).contents().eq(1).text(),修改:cdat.eq(6).contents().eq(1).text());
});
log('list:'+JSON.stringify(list))代码>