gpt4 book ai didi

python - Xpath for ElementTree 引用 XML 和命名空间用于英国法规元数据

转载 作者:行者123 更新时间:2023-12-04 16:55:25 25 4
gpt4 key购买 nike

Python 新手,但试图访问英国法规的元数据,例如https://www.legislation.gov.uk/ukpga/2018/12/part/3/chapter/4/data.xml - 英国数据保护法第 3 部分第 4 章。
问题是涉及到两个命名空间 - 英国立法 ukm: 和都柏林核心 dc:

<Legislation xmlns="http://www.legislation.gov.uk/namespaces/legislation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" DocumentURI="http://www.legislation.gov.uk/ukpga/2018/12" IdURI="http://www.legislation.gov.uk/id/ukpga/2018/12" NumberOfProvisions="1103" xsi:schemaLocation="http://www.legislation.gov.uk/namespaces/legislation http://www.legislation.gov.uk/schema/legislation.xsd" SchemaVersion="1.0" RestrictExtent="E+W+S+N.I." RestrictStartDate="2020-02-14">

<ukm:Metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:ukm="http://www.legislation.gov.uk/namespaces/metadata">
<dc:identifier>
...
我如何访问 Legislation/ukm:Metadata 元素?
我试过使用不成功:-
statute_xml_tree = ET.parse(statute_xmi_doc)
statute_root = statute_xml_tree.getroot()
statute_metadata = statute_root.findall("{http://www.legislation.gov.uk/namespaces/metadata}Metadata")

沿着

#All dublin-core "title" tags in the document


root.findall(".//{http://purl.org/dc/elements/1.1/}title")


来自 https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpath

最佳答案

答案似乎是需要命名空间前缀;

dcmi_title = statute_root.find(mm_ns + "Metadata/" + dc_ns + "title").text

但是命名空间的添加会产生冗长的 XPath 字符串......

关于python - Xpath for ElementTree 引用 XML 和命名空间用于英国法规元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64117560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com