You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Cheerio从含多标签的XML元素中提取指定可读文本

用Cheerio提取XML中CDATA内指定

标签的文本

实现步骤

  • 以XML模式加载整个文档,确保Cheerio正确解析CDATA内容
  • 定位<description>标签,提取其内部的HTML片段(CDATA包裹的内容会被自动剥离标记)
  • 将该HTML片段重新加载为Cheerio实例,通过索引选择第二个<p>标签并提取文本

代码示例

const cheerio = require('cheerio');

// 示例XML内容
const xmlContent = `
<item>
  <description><![CDATA[
    <p>无关段落内容</p>
    <p>Eddie Hearn views it as positive if Ryan Garcia teams up with his former trainer Eddy Reynoso to try and pick up</p>
    <p>其他段落内容</p>
  ]]></description>
</item>
`;

// 开启XML模式加载XML文档
const $xml = cheerio.load(xmlContent, { xmlMode: true });

// 获取description标签内的HTML片段
const descriptionHtml = $xml('description').html();

// 将HTML片段转为可操作的Cheerio实例
const $html = cheerio.load(descriptionHtml);

// 提取第二个<p>的文本(eq(1)对应索引1,即第二个元素)
const targetText = $html('p').eq(1).text().trim();

console.log(targetText);

注意事项

  • 若存在多个<description>标签,需先定位到对应的父节点(比如<item>)再获取目标标签,例如$xml('item').eq(0).find('description').html()
  • 必须开启xmlMode: true,否则Cheerio无法正确识别XML结构和CDATA内容

内容的提问来源于stack exchange,提问作者Daniel Tolentino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:13:18