【问题标题】:find xml-nodes by tag with wildcard通过带有通配符的标签查找 xml 节点
【发布时间】:2022-01-01 05:37:16
【问题描述】:

我正在尝试在 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> 

我无法将 xpath 表达式放在一起。像这样的

xyz = lxml.etree.parse( ... )
vees = xyz.xpath("general/[tag='v*']")  

我想养蜂

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

【问题讨论】:

    标签: python-3.x xml xpath


    【解决方案1】:

    尝试改变:

    vees = xyz.xpath("general/[tag='v*']") 
    

    doc.xpath('//general//*[starts-with(name(),"v")]')
    

    看看它是否有效。

    【讨论】:

    • 是的,这行得通。谢谢。有谁知道 xpath 语言的简明而全面的文档,而其中 90% 的内容都不是浏览器或样式表相关的东西?
    • @Axel 恐怕这不是您可以在 SO 上得到答案的问题。有很多关于 xpath 和 xml 的东西,包括几本书——只要做一些搜索,你可能会找到适合你需要的东西。在此期间,如果我们完成了,请不要忘记接受答案。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多