Извлечение данных из XAML с использованием Python - PullRequest
1 голос
/ 31 октября 2019

Я очень плохо знаком с XAML и хочу знать, как извлечь данные из файла XAML с помощью Python (я знаю об основном использовании модуля XML). Например, одна из строк:

<Variable x:TypeArguments="sd:DataTable" Name="Yoko_Hara" />

Из приведенной выше строки я хочу извлечь имя этой переменной.

Я попробовал следующий код и получил пустой вывод:

> from xml.etree import cElementTree as ET
> 
> data = ET.parse("inputfile/main.xaml")     
> root = data.getroot() 
> for elem in root.iter('Variable'):
>     print(elem.text)

Ответы [ 2 ]

3 голосов
/ 31 октября 2019

Вам необходимо получить к нему доступ, используя атрибут, т.е. имя

, используйте

print(elem.attrib['Name']) 

вместо

print(elem.text)
2 голосов
/ 31 октября 2019

Причина в том, что вы пытаетесь получить текст, который является значением между начальным и конечным тегами. Учитывая следующее:

<Variable Name="somename">Text</Variable>

elem.text создает «Текст».

На самом деле вам нужна часть атрибута, которая доступна следующим образом:

from xml.etree import cElementTree as ET

data = ET.parse("inputfile/main.xaml")     
root = data.getroot() 
for elem in root.iter('Variable'):
     print(elem.attrib['Name'])
...