gpt4 book ai didi

Python:ElementTree,获取一个元素的命名空间字符串

转载 作者:IT老高 更新时间:2023-10-28 20:57:00 26 4
gpt4 key购买 nike

此 XML 文件名为 example.xml:

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>14.0.0</modelVersion>
<groupId>.com.foobar.flubber</groupId>
<artifactId>uberportalconf</artifactId>
<version>13-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Environment for UberPortalConf</name>
<description>This is the description</description>
<properties>
<birduberportal.version>11</birduberportal.version>
<promotiondevice.version>9</promotiondevice.version>
<foobarportal.version>6</foobarportal.version>
<eventuberdevice.version>2</eventuberdevice.version>
</properties>
<!-- A lot more here, but as it is irrelevant for the problem I have removed it -->
</project>

如果我加载 example.xml 并使用 ElementTree 解析它,我可以看到它的命名空间是 http://maven.apache.org/POM/4.0.0

>>> from xml.etree import ElementTree
>>> tree = ElementTree.parse('example.xml')
>>> print tree.getroot()
<Element '{http://maven.apache.org/POM/4.0.0}project' at 0x26ee0f0>

我还没有找到一种方法来调用以仅从 Element 获取命名空间,而无需解析元素的 str(an_element)。看来一定有更好的办法。

最佳答案

对于 regular expression 来说,这是一项完美的任务。 .

import re

def namespace(element):
m = re.match(r'\{.*\}', element.tag)
return m.group(0) if m else ''

关于Python:ElementTree,获取一个元素的命名空间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9513540/

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