首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML解析:在Python中将大-大-.-孙子元素设置为根元素

XML解析:在Python中将大-大-.-孙子元素设置为根元素
EN

Stack Overflow用户
提问于 2015-01-16 19:54:05
回答 2查看 684关注 0票数 2

我有一个XML文件,其结构如下:

代码语言:javascript
复制
<element1>
    <element2>
        ...
        <element10 name="a">
            ...

我试图使用Python在Python2.7中解析这个文件。但是我正在寻找的数据在结构中隐藏得很深。

有什么方法可以不迭代整个结构而将特定的大-大--大--大的子元素(例如element10)设置为根元素吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-19 10:42:29

多亏了这篇伟大的文章,我终于解决了这个问题。

代码语言:javascript
复制
tree.iter(tag = 'element10')

这将在结构中找到所需的元素,然后可以迭代他的子元素,即使树中有更多的“element10”命名元素。

代码语言:javascript
复制
for element in tree.iter(tag = 'element10'):
    ...
票数 1
EN

Stack Overflow用户

发布于 2015-01-16 20:03:03

试试这个:

代码语言:javascript
复制
'(//*[starts-with(name(), "element")])[last()]'

演示:

代码语言:javascript
复制
$ cat file
<element1>
    <element2></element2>
    <element3></element3>
    <element4></element4>
    <element5></element5>
    <element6></element6>
    <element10 name="a">x</element10>
</element1>

代码:

(也与xmllint一起工作)

代码语言:javascript
复制
$ saxon-lint.pl --xpath '(//*[starts-with(name(), "element")])[last()]' file

产出:

代码语言:javascript
复制
<element10 name="a">x</element10>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27991772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档