我在nodejs 中使用cheerio 来解析一些RSS 提要。我正在抓取所有将它们放入数组中的项目。我正在使用 3 个测试提要,每个“项目”元素都有一个“描述”子元素。在其中一个提要中,整个“描述”被包装为 CDATA,我无法获得它的价值。这是一个简短的代码片段
//Open the xml document with cheerio
$ = cheerio.load(arrXmlDocs[i],{ ignoreWhitespace : true, xmlMode : true});
//Loop through every item
$('item').each(function(i, xmlItem){
//array to hold each item being converted into an array
var tempArray = [];
//Loop through each child of <item>
$(xmlItem).children().each(function(i, xmlItem){
//Get the name
tempArray[$(this)[0].name] = $(this).text();
}
}
正如预期的那样,两个没有 CDATA 的 rss 提要给了我一个像这样的数组
[
[
name: 'name of episode',
description:'description of episode',
pubdate: 'published date'
],
[
name: 'name of episode',
description:'description of episode',
pubdate: 'published date'
]
]
带有 CDATA 描述的提要看起来像这样
[
name: 'name of episode',
pubdate: 'published date'
],
所以我的问题是:为什么cheerio 不返回包含在 CDATA 中的值/我怎样才能让它返回这些值。