作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我需要检查xml文件中是否存在某个标签。
例如,我想看看这个代码段中是否存在标签:
<main>
<elem1/>
<elem2>Hi</elem2>
<elem3/>
...
</main>
目前,我正在使用带有错误检查功能的丑陋 hack,如下所示:
try:
if root.elem1.tag:
foo = elem1
except AttributeError:
foo = "error finding elem1"
如果找不到节点(即“无法找到 -tagname-”),我还想自定义字符串。
我必须检查一长串变量,我不想重复代码 100 次。
有什么建议吗?
编辑:
这是实际 xml 文件的片段:
<main>
<asset name="Virtual Dvaered Unpresence">
<virtual/>
<presence>
<faction>Dvaered</faction>
<value>-1000.000000</value>
<range>0</range>
</presence>
</asset>
<asset name="Virtual Empire Small">
<virtual/>
<presence>
<faction>Empire</faction>
<value>100.000000</value>
<range>2</range>
</presence>
</asset>
</main>
我想检查标签是否存在,如果存在,获取内容。
编辑编辑:好的,我将结合两个答案,但我只能投票给一个。对不起。
编辑 3:此处有关 XPath 的相关问题:Python lxml (objectify): Xpath troubles
最佳答案
hasattr()
适用于此:
if hasattr(root, 'elem1'):
foo = root.elem1
关于Python Lxml(对象化): Checking whether a tag exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385821/
我是一名优秀的程序员,十分优秀!