我想得到一个列表的所有trololo
标签与attr
属性(但不是xxx
或任何其他)使用Python从以下XML:
<data>
<test>
<trololo attr="1">
</trololo>
</test>
<test>
<trololo>
</trololo>
</test>
<test>
<trololo attr="X">
</trololo>
</test>
<test>
<xxx attr="Y">
</xxx>
</test>
</data>
我尝试过使用/*[@attr]
,但结果也包括xxx
标记。到目前为止,我尝试的所有其他变体都失败了。
我正在使用的实际Python代码:
import xml.etree.ElementTree as ET
from pprint import pprint
tree = ET.parse('test.xml')
nodes = tree.findall('//*trololo[@attr]')
pprint(nodes)
输出:
[]
更新:
我发现这是一个命名空间问题,这使得这个问题重复。问题是我有一个根节点看起来像这样:
<data xmlns="http://example.com">
正如@har07在注释中正确回答的那样,XPath
//trololo[@attr]
将根据请求选择具有attr
属性的所有trololo
元素(无论其值如何)。
这根弦,
//*trololo[@attr]
在语法上根本不是XPath表达式,但与,
//*:trololo[@attr]
在XPath 2.0(但不是XPath 1.0)下语法无效。它说在任何命名空间中选择trololol
元素。要忽略XPath 1.0中的命名空间(但您确实不应该这样做),请使用local-name()
:
//*[local-name() = 'trololo' and @attr]
/*[@attr]
/*[@*]
问题内容: 如何使用BeautifulSoup搜索仅包含我要搜索的属性的标签? 例如,我要查找所有标签。 如下代码: 获取我想要的所有数据,还获取具有该属性的所有标签 我也试过了: 这什么也不返回(可能是由于正则表达式不好) 我想知道在BeautifulSoup中是否有一种方法可以说“查找唯一属性为”的标签 *例如,如果HTML文档包含以下标记,则为 *UPDATE : 我只希望第一个标签()返回
问题内容: 我有一些复杂的对象,例如猫,它具有许多属性,例如年龄,喜爱的猫食等等。 Java集中存储了一堆猫,我需要查找所有3岁的猫,或者最喜欢猫粮的Whiskas。当然,我可以编写一个自定义方法来查找那些具有特定属性的Cat,但是这样做会麻烦许多属性。有一些通用的方法吗? 问题答案: 您可以编写一个采用接口实例的方法,该实例定义了一个方法,该方法可以通过所需的任何属性检查来实现。 更好的是,使其
下面是适当的方法签名的样子: (问题领域是扑克;列举奥马哈扑克牌中所有可能的板卡组合。是的,还有其他方法可以解决这个问题,但我正在测试这个方法,因为处理比特比大多数其他选择要快得多。)
我有一个SVG文档,其中包含类似于以下内容的节点: 我想做的只是选择
问题内容: 我是AngularJS的新手。我了解到可以使用以下查询在DOM中找到元素: 这对于按ID或CSS类名查找元素很有用。但是,我需要能够使用其他方法来查找元素。我有一个看起来像下面的元素: 我无法查询“ myContainer”,因为它已被重用了多少。因此,我想找到任何具有“ my- directive”属性的元素。如何搜索DOM并找到任何使用“我的指令”的元素? 问题答案: 您应该在指令
问题内容: 我有这个数据结构,在这里组织待办事项以遵循路径/ todos / uid / 我想查询待办事项以获取所有记录。使用firebase(angularfire)是否可能,我应该怎么做?还是我应该进一步规范化并安排路径/私人路线,以免走下待办事项? 问题答案: Firebase中没有子句。请查看此线程,以获取有关按多个字段进行搜索的一些出色的结构性技巧,有关数据库样式查询的该线程,有关查询的