У меня есть файл XML POM, как следующее:Получение ребенка атрибутов из документа XML с помощью элемента дерева
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.amirsys</groupId>
<artifactId>components-parent</artifactId>
<version>RELEASE</version>
</parent>
<artifactId>statdxws</artifactId>
<version>6.5.0-16</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1200-jdbc41</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.amirsys</groupId>
<artifactId>referencedb</artifactId>
<version>5.0.0-1</version>
<exclusions>
<exclusion>
<groupId>com.amirsys</groupId>
<artifactId>jig</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
Я пытаюсь вытащить groupIds, artifactIds и версий с использованием элементов дерева для создания объект зависимости, но он не найдет теги зависимостей. Это мой код до сих пор:
tree = ElementTree.parse('pomFile.xml')
root = tree.getroot()
namespace = '{http://maven.apache.org/POM/4.0.0}'
for dependency in root.iter(namespace+'dependency'):
groupId = dependency.get('groupId')
artifactId = dependency.get('artifactId')
version = dependency.get('version')
print groupId, artifactId, version
Это не выводит ничего, и я не могу понять, почему код не перебора тега зависимостей. Любая помощь будет оценена по достоинству.
@ d.griner Вы должны прочитать следующее: https://docs.python.org/2/library/xml.etree.elementtree.html#parsing-xml-with-namespaces –
Спасибо, это точно отвечает на мой вопрос , Я ценю это! –