아래에 xml 파일 데이터가 있습니다.
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<rootnode>
<TExportCarcass>
<BodyNum>6168</BodyNum>
<BodyWeight>331.40</BodyWeight>
<UnitID>1</UnitID>
<Plant>239</Plant>
<pieces>
<TExportCarcassPiece index="0">
<Bruising>0</Bruising>
<RFIDPlant></RFIDPlant>
</TExportCarcassPiece>
<TExportCarcassPiece index="1">
<Bruising>0</Bruising>
<RFIDPlant></RFIDPlant>
</TExportCarcassPiece>
</pieces>
</TExportCarcass>
<TExportCarcass>
<BodyNum>6169</BodyNum>
<BodyWeight>334.40</BodyWeight>
<UnitID>1</UnitID>
<Plant>278</Plant>
<pieces>
<TExportCarcassPiece index="0">
<Bruising>0</Bruising>
<RFIDPlant></RFIDPlant>
</TExportCarcassPiece>
<TExportCarcassPiece index="1">
<Bruising>0</Bruising>
<RFIDPlant></RFIDPlant>
</TExportCarcassPiece>
</pieces>
</TExportCarcass>
</rootnode>
파이썬 lxml
모듈을 사용하여 아래와 같이 xml 파일에서 데이터를 읽습니다.
from lxml import etree
doc = etree.parse('file.xml')
memoryElem = doc.find('BodyNum')
print(memoryElem)
그러나 그에만 인쇄하는 None
대신 6168
. 여기에서 내가 뭘 잘못하고 있는지 제안하십시오.
각 TExportCarcass
태그 를 반복 한 다음 사용 find
하여BodyNum
전의:
from lxml import etree
doc = etree.parse('file.xml')
for elem in doc.findall('TExportCarcass'):
print(elem.find("BodyNum").text)
산출:
6168
6169
또는
print([i.text for i in doc.findall('TExportCarcass/BodyNum')]) #-->['6168', '6169']
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다