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

Node.js中如何根据用户输入的XML标签名提取标签内内容

Node.js 实现XML标签内容查询功能

需求说明

接收用户输入的XML标签名,在指定XML文档中查找所有对应标签,遍历并完整展示每个标签内的内容(包含子标签)。例如输入unit时,输出所有<unit>标签的完整XML内容。

示例XML

<root>
  <unit>
    <name>Unit 1</name>
    <value>100</value>
  </unit>
  <unit>
    <name>Unit 2</name>
    <value>200</value>
  </unit>
  <section>
    <title>Section A</title>
  </section>
</root>

修正后的实现代码

首先安装依赖库:

npm install xmldom xmlserializer

完整代码:

const { DOMParser } = require('xmldom');
const xmlserializer = require('xmlserializer');
const readline = require('readline');

// 待查询的XML内容
const xmlContent = `
<root>
  <unit>
    <name>Unit 1</name>
    <value>100</value>
  </unit>
  <unit>
    <name>Unit 2</name>
    <value>200</value>
  </unit>
  <section>
    <title>Section A</title>
  </section>
</root>
`;

// 创建命令行交互实例
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('请输入要查询的XML标签名:', (targetTag) => {
  // 解析XML为DOM文档对象
  const parser = new DOMParser();
  const xmlDoc = parser.parseFromString(xmlContent, 'text/xml');
  
  // 查找所有匹配的标签元素
  const targetElements = xmlDoc.getElementsByTagName(targetTag);
  
  if (targetElements.length === 0) {
    console.log(`未找到<${targetTag}>标签`);
    rl.close();
    return;
  }

  console.log(`找到${targetElements.length}个<${targetTag}>标签:`);
  // 遍历元素,序列化并输出完整XML内容
  for (let i = 0; i < targetElements.length; i++) {
    const elementXml = xmlserializer.serializeToString(targetElements[i]);
    console.log(elementXml);
  }

  rl.close();
});

测试效果

  • 输入unit时输出:
找到2个<unit>标签:
<unit>
    <name>Unit 1</name>
    <value>100</value>
  </unit>
<unit>
    <name>Unit 2</name>
    <value>200</value>
  </unit>
  • 输入section时输出:
找到1个<section>标签:
<section>
    <title>Section A</title>
  </section>
  • 输入不存在的标签(如test)时输出:
未找到<test>标签

关键说明

  • xmldom负责将XML字符串解析为标准DOM结构,方便进行标签查询
  • xmlserializer负责将DOM元素重新序列化为XML字符串,保证输出格式与原XML一致
  • 增加了标签不存在的判断逻辑,避免无意义输出

内容的提问来源于stack exchange,提问作者allen walker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 08:22:38