Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery解析包含CDATA的RSS提要_Javascript_Jquery_Xml_Sharepoint 2010_Rss - Fatal编程技术网

Javascript 使用jQuery解析包含CDATA的RSS提要

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

我试图将RSS提要解析为一个数组,但该提要添加了CDATA标记并组合了某些元素

下面的代码通过rss提要(url)进行解析,并将某些元素添加到数组中。但是,当我查看提要本身时,它将多个关键元素组合在
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:&quot;calibri&quot;, &quot;sans-serif&quot;">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))