XML 查找 child 标签的所有属性值
XML find all attribute values of a tag of a child
我想获取每个 child 的文本值和每个 child 的每个属性值。我可以获取文本值,但我无法一个一个地获取属性值并将每个属性值分配给一个变量。
我有以下 XML 文件:
<Transactions>
<CardAuthorisation xmlns:xsi="http://...">
<RecType>ADV</RecType>
<AuthId>60874046</AuthId>
<LocalDate>202008010000</LocalDate>
<SettlementDate>202008</SettlementDate>
<Card productid="16" PAN="64256700991593" product="MC" programid="AUST" branchcode="" />
</CardAuthorisation>
</Transactions>
我有以下代码:
import xml.etree.ElementTree as et
xFile = "test.XML"
xtree = et.parse(xFile)
xRoot = xtree.getroot()
for cardAuthorisation in xRoot.findall('CardAuthorisation'):
recType = cardAuthorisation.find('./RecType').text
authId = cardAuthorisation.find('./AuthId').text
localDate = cardAuthorisation.find('./LocalDate').text
settlementDate = cardAuthorisation.find('./SettlementDate').text
#here is where I am having trouble with
#pseudocode
for every attribute in Card:
card_productid = #the value of productid if not None else None
.
.
.
branchcode = #the value of branchcode if not None else None
这是我第一次使用 XML 个文件,我做了很多研究,但其中 none 个文件符合我的用例。任何帮助将不胜感激,提前致谢。
您可以按如下方式访问“Card”元素的属性:
card = cardAuthorisation.find('./Card')
for key in card.keys():
print(key, card.get(key))
要获取所有 <Card>
标签和 <Card>
中的每个 attribute/value,您可以执行以下操作:
for c in cardAuthorisation.findall('Card'):
for k, v in c.items():
print(k, v)
打印:
productid 16
PAN 64256700991593
product MC
programid AUST
branchcode
我想获取每个 child 的文本值和每个 child 的每个属性值。我可以获取文本值,但我无法一个一个地获取属性值并将每个属性值分配给一个变量。
我有以下 XML 文件:
<Transactions>
<CardAuthorisation xmlns:xsi="http://...">
<RecType>ADV</RecType>
<AuthId>60874046</AuthId>
<LocalDate>202008010000</LocalDate>
<SettlementDate>202008</SettlementDate>
<Card productid="16" PAN="64256700991593" product="MC" programid="AUST" branchcode="" />
</CardAuthorisation>
</Transactions>
我有以下代码:
import xml.etree.ElementTree as et
xFile = "test.XML"
xtree = et.parse(xFile)
xRoot = xtree.getroot()
for cardAuthorisation in xRoot.findall('CardAuthorisation'):
recType = cardAuthorisation.find('./RecType').text
authId = cardAuthorisation.find('./AuthId').text
localDate = cardAuthorisation.find('./LocalDate').text
settlementDate = cardAuthorisation.find('./SettlementDate').text
#here is where I am having trouble with
#pseudocode
for every attribute in Card:
card_productid = #the value of productid if not None else None
.
.
.
branchcode = #the value of branchcode if not None else None
这是我第一次使用 XML 个文件,我做了很多研究,但其中 none 个文件符合我的用例。任何帮助将不胜感激,提前致谢。
您可以按如下方式访问“Card”元素的属性:
card = cardAuthorisation.find('./Card')
for key in card.keys():
print(key, card.get(key))
要获取所有 <Card>
标签和 <Card>
中的每个 attribute/value,您可以执行以下操作:
for c in cardAuthorisation.findall('Card'):
for k, v in c.items():
print(k, v)
打印:
productid 16
PAN 64256700991593
product MC
programid AUST
branchcode