使用Python从XAML提取数据

时间:2019-10-31 04:13:12

标签: python xml xaml elementtree treenode

我对XAML非常陌生,想了解使用Python从XAML文件提取数据的方式(我知道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 个答案:

答案 0 :(得分:3)

您需要使用属性(即名称)来访问它

使用

print(elem.attrib['Name']) 

代替

print(elem.text)

答案 1 :(得分:2)

原因是因为您试图获取文本,即开始标签和结束标签之间的值。给出以下内容:

<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'])