根据其属性/ Python获取xml元素的索引

乔纳斯·朵

我需要找出具有某些属性和名称空间的XML元素的索引(位置)。在我的XML中,有更多具有相同名称的元素,因此唯一可以确定正确元素的方法是通过其属性。

这是我的XML文档的示例:

<mets:mets LABEL="Moderní pedagogika, 2002" TYPE="Monograph"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:mets="http://www.loc.gov/METS/"
    xmlns:mods="http://www.loc.gov/mods/v3"
    xmlns:ns3="http://www.openarchives.org/OAI/2.0/oai_dc/"
    xmlns:ns5="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema.xsd http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/mets.xsd http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-4.xsd http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd">
    <mets:metsHdr CREATEDATE="2012-12-05T07:42:22" LASTMODDATE="2012-12-05T07:42:22">
        <mets:agent ROLE="CREATOR" TYPE="ORGANIZATION">
            <mets:name>ABA001</mets:name>
        </mets:agent>
        <mets:agent ROLE="ARCHIVIST" TYPE="ORGANIZATION">
            <mets:name>ABA001</mets:name>
        </mets:agent>
    </mets:metsHdr>
    <mets:dmdSec ID="MODSMD_VOLUME_0001">
        .....   
    </mets:dmdSec>
    <mets:dmdSec ID="DCMD_VOLUME_0001"> 
        .....
    </mets:dmdSec>
</mets:mets>

在这种情况下,所需索引是此标记的索引<mets:dmdSec ID =“ MODSMD_VOLUME_0001”>

我已经尝试过一些有关list(root).index(dmdSec)的解决方案,但没有成功,因为我无法或不知道如何在其中插入有关属性和名称空间的详细信息

有人可以帮我吗

杰克·弗莱汀

我假设您正在使用lxml.etree库进行xml解析-如果不是,则可能需要进行一些修改-但原理是相同的:

只需使用:

编辑:

from lxml import etree
root = etree.parse(r'path\to\your\file.xml')
int(root.xpath('count(//*[@ID="MODSMD_VOLUME_0001"]/preceding-sibling::*)+1'))

输出:2

请注意,位置是2不是1-xpath从1开始计数(与python从0开始计数不同)。您的目标是<mets:dmdSec>根中的第二个节点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据其属性之一获取项目的数组索引

来自分类Dev

如何根据其同级属性值从元素获取文本值?

来自分类Dev

PHP简单XML根据其属性获取节点

来自分类Dev

在QtQuick 2.0中根据其属性查找ListModel的特定元素

来自分类Dev

根据其属性从 Set 中选择一个元素

来自分类Dev

如何使用CasperJS根据其属性的一部分选择特定元素

来自分类Dev

根据属性查找XML元素

来自分类Dev

Python BeautifulSoup:根据颜色属性获取表格元素

来自分类Dev

如何根据其值之一选择数组索引元素?

来自分类Dev

angularjs-如何根据其属性之一的值在控制器中获取ng-repeat过滤器中某项的索引?

来自分类Dev

根据jstl中的索引获取arraylist的元素

来自分类Dev

根据索引列表从数组中获取元素

来自分类Dev

根据索引删除xml元素节点

来自分类Dev

根据子索引删除 XML 元素

来自分类Dev

Selenium python查找元素并打印其属性

来自分类Dev

更正XPath以根据嵌套属性获取元素

来自分类Dev

根据内的属性值获取元素

来自分类Dev

根据其值使用JQuery获取列表元素

来自分类Dev

要从数据框的一列中获取条目,请对其属性进行隔离,并根据该属性将它们放置到不同的列中

来自分类Dev

根据其索引设置Multiindex列的值

来自分类Dev

根据属性获取较高的XML节点值

来自分类Dev

根据其值替换数组中的元素

来自分类Dev

根据其innerHTML显示/隐藏HTML元素

来自分类Dev

根据其值更新数组元素

来自分类Dev

使用python脚本基于XML中其他元素的文本或属性获取元素的文本

来自分类Dev

根据其ID存储和获取数据

来自分类Dev

如何根据其值获取变量的名称

来自分类Dev

其简单类型由属性驱动的元素的XML模式

来自分类Dev

熊猫:根据其组内元素的相对索引在多索引数据框中创建列

Related 相关文章

  1. 1

    根据其属性之一获取项目的数组索引

  2. 2

    如何根据其同级属性值从元素获取文本值?

  3. 3

    PHP简单XML根据其属性获取节点

  4. 4

    在QtQuick 2.0中根据其属性查找ListModel的特定元素

  5. 5

    根据其属性从 Set 中选择一个元素

  6. 6

    如何使用CasperJS根据其属性的一部分选择特定元素

  7. 7

    根据属性查找XML元素

  8. 8

    Python BeautifulSoup:根据颜色属性获取表格元素

  9. 9

    如何根据其值之一选择数组索引元素?

  10. 10

    angularjs-如何根据其属性之一的值在控制器中获取ng-repeat过滤器中某项的索引?

  11. 11

    根据jstl中的索引获取arraylist的元素

  12. 12

    根据索引列表从数组中获取元素

  13. 13

    根据索引删除xml元素节点

  14. 14

    根据子索引删除 XML 元素

  15. 15

    Selenium python查找元素并打印其属性

  16. 16

    更正XPath以根据嵌套属性获取元素

  17. 17

    根据内的属性值获取元素

  18. 18

    根据其值使用JQuery获取列表元素

  19. 19

    要从数据框的一列中获取条目,请对其属性进行隔离,并根据该属性将它们放置到不同的列中

  20. 20

    根据其索引设置Multiindex列的值

  21. 21

    根据属性获取较高的XML节点值

  22. 22

    根据其值替换数组中的元素

  23. 23

    根据其innerHTML显示/隐藏HTML元素

  24. 24

    根据其值更新数组元素

  25. 25

    使用python脚本基于XML中其他元素的文本或属性获取元素的文本

  26. 26

    根据其ID存储和获取数据

  27. 27

    如何根据其值获取变量的名称

  28. 28

    其简单类型由属性驱动的元素的XML模式

  29. 29

    熊猫:根据其组内元素的相对索引在多索引数据框中创建列

热门标签

归档