Анализ файла .targets с помощью ElementTree не находит указанный тегPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Анализ файла .targets с помощью ElementTree не находит указанный тег

Сообщение Anonymous »

Я пытаюсь использовать ElementTree для анализа информации из файла .targets из пакета NuGet.
Я пытаюсь найти тег . Чтобы попытаться получить его, я использую следующий код Python:
import xml.etree.ElementTree as ET

tree = ET.parse(targets_file_path)
config_root = tree.getroot()
namespace = config_root.tag.replace("Project", "")
to_find = f"{namespace}AdditionalIncludeDirectories"
include_dirs = config_root.findall(to_find)
include_directory_list = []
for p in include_dirs:
include_directory_list.append(p)

По сути, это первый пример из документации Python. Однако список include_directory_list пуст после выполнения этого фрагмента.
Однако, когда я печатаю каждый отдельный тег, я получаю следующий вывод:
depth = 0
item_list = []
for it in config_root:
item_list.append([depth, it])

while len(item_list) > 0:
d, it = item_list.pop(0)
print(f"depth {d}: {it.tag}")
for subit in it:
item_list.append([d+1, subit])

доходность:
depth 0: {http://schemas.microsoft.com/developer/ ... pertyGroup
depth 0: {http://schemas.microsoft.com/developer/ ... itionGroup
depth 0: {http://schemas.microsoft.com/developer/ ... itionGroup
depth 1: {http://schemas.microsoft.com/developer/ ... }ClCompile
depth 1: {http://schemas.microsoft.com/developer/ ... /2003}Link
depth 1: {http://schemas.microsoft.com/developer/ ... /2003}Link
depth 2: {http://schemas.microsoft.com/developer/ ... irectories
depth 2: {http://schemas.microsoft.com/developer/ ... pendencies
depth 2: {http://schemas.microsoft.com/developer/ ... Directorie
depth 2: {http://schemas.microsoft.com/developer/ ... pendencies
depth 2: {http://schemas.microsoft.com/developer/ ... irectories

Это именно тот результат, который я ожидал. Первый элемент с глубиной = 2 — это тот, который я ищу, и имя, по-видимому, совпадает с тем, которое я ввожу в findall(). Я также попробовал iterfind(), но это также не дало мне правильного результата. Существует также возможность передачи словаря пространства имен, которую я тоже попробовал с тем же результатом.
У меня такое ощущение, что я либо вижу ошибку, либо упускаю что-то очень и очень очевидное.Будем очень признательны за любую помощь!

PS:
XML выглядит так:




$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)




mylib_d.lib;%(AdditionalDependencies)
$(MSBuildThisFileDirectory)native\lib;%(AdditionalLibraryDirectories)


mylib.lib;%(AdditionalDependencies)
$(MSBuildThisFileDirectory)native\lib;%(AdditionalLibraryDirectories)





Подробнее здесь: https://stackoverflow.com/questions/786 ... cified-tag
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»