Agent Skills
返回列表
XML电子发票号码提取器

XML电子发票号码提取器

办公效率 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_9355e276/shdskill23。

技能介绍

问题背景

XML 格式的电子发票(增值税电子普通发票、增值税电子专用发票、全电发票等)在归档或入账前,常需要把发票号码汇总成一张清单。手工逐个打开文件、复制号码既慢又容易出错,而不同票种的 XML 结构并不统一:发票号码可能藏在 fphm、InvoiceNo、EInvoiceNumber 这类标签里,也可能只出现在某个属性的 value 中。更隐蔽的坑是 Excel:20 位的全电发票号码一旦被识别成数字,会直接变成科学计数法,前导零也会被吃掉。

工作方式

这个技能的核心是一个本地 HTML 工具,运行时不依赖外部服务。触发后它会把 extract_xml_invoice.html 复制到当前工作目录并在内置浏览器面板中打开,后续全部操作都在页面上完成。

发票号码识别按固定优先级回退,逐级放宽匹配条件:

  • 标签文本匹配:扫描所有元素,匹配标签名含 invoice、发票、fp、no、编号、fpdm、fphm 等关键词的元素,且文本是 6–30 位字母数字组合
  • 标签属性匹配:若标签属性(invoiceNo、EInvoiceNumber、发票号码等)符合号码格式,优先采用属性值
  • XPath 路径回退:尝试 //Invoice/InvoiceNo、//fphm、//EInvoice//EInvoiceNumber 等常见路径
  • 通用属性回退与文件名回退:从任意元素属性中找号码;全电发票文件名通常含 20 位数字,可作为兜底
  • 通用文本回退:取第一个符合格式的元素文本

解析结果以 Excel 明细表输出,列为序号、文件名、发票号码、XML 标签、状态。其中发票号码列强制写为文本格式,专门用于保住 20 位号码和前导零。

适用边界

这套逻辑本质上是启发式扫描,不解析发票的完整业务语义。如果某个票种的 XML 使用了完全未见的命名(既无关键词、也无常见属性),只能依赖通用文本回退,存在误匹配的风险——建议对结果抽查校验。另外,它只提取发票号码,不校验号码的合法性与真伪,也不做票种区分。

使用场景

  • 财务收到一批增值税电子发票XML,需要把分散在各标签里的发票号码汇总成一张Excel表
  • 批量归档全电发票时,要从文件名或XML字段中找回20位发票号码,避免被Excel转成科学计数法
  • 发票号码散落在`fphm`、`InvoiceNo`等多个XML结构中,需要按优先级规则自动识别并导出明细
  • 需要核对一批XML发票的发票号码提取结果,输出中要能看出每个号码对应的XML标签和状态

适合人员

  • 需要批量汇总XML电子发票号码的财务人员,希望减少手工打开文件复制号码的时间
  • 处理发票归档的运营或档案管理员,需要把发票号码导出为文本格式的Excel明细表
  • 开发内部报销或财务系统的工程师,需要参考发票号码的XML识别规则做数据清洗
  • 经常处理全电发票的税务或合规人员,需要在申报前核对发票号码是否被正确提取