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

如何使用带通配符的标签查找XML节点?基于lxml的xpath实现标签前缀匹配

查找XML中指定前缀标签节点的实现方法

需求说明

需要在XML文档的general节点下,筛选出所有标签名以v开头的元素节点。

示例XML结构

<data> 
<general>
    <va value="400" /> <!--looking for this "v-tag"-->
    <vb value="42"  /> <!-- and this one-->
    <y value="43" />
</general>
<special>
    <va value="100" />  
</special>
</data> 

原有代码问题

你之前编写的xpathgeneral/[tag='v*']不符合语法规范,不存在tag这个默认属性,且通配符*不能直接在字符串匹配中这么使用。

正确实现代码

使用XPath 1.0内置的starts-with函数做前缀匹配即可,lxml完全支持该语法:

import lxml.etree

xyz = lxml.etree.parse(你的XML文件路径)
# 核心xpath:匹配general下所有标签名以v开头的子节点
vees = xyz.xpath("general/*[starts-with(local-name(), 'v')]")

表达式说明

  • general/:限定查找范围为general节点的直接子节点
  • *:匹配任意标签的子节点
  • starts-with(local-name(), 'v'):过滤条件,取节点的本地名称(兼容带命名空间的XML场景),判断是否以字符v开头。如果你的XML没有命名空间,也可以替换为starts-with(name(), 'v')

输出效果

执行后vees变量结果符合预期:

vees
Out[64]: [<Element va at 0x....>, <Element vb at 0x...>]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:36:03