구문 분석하려고하는 XML이 있습니다. 예 :Python/lxml : for 중첩 된 루프
<TVAMain>
<ProgramDescription>
<ProgramLocationTable>
<Schedule value1="1234">
<ScheduleEvent>
<Program value2="1234567890" />
</ScheduleEvent>
<ScheduleEvent>
<Program value2="1234567891" />
</ScheduleEvent>
</Schedule>
<Schedule value1="5678">
<ScheduleEvent>
<Program value2="1234567892" />
</ScheduleEvent>
<ScheduleEvent>
<Program value2="1234567893" />
</ScheduleEvent>
</Schedule>
</ProgramLocationTable>
</ProgramDescription>
</TVAMain>
내가 값 1로 파일에 값 1의 모든 항목 및 값 2의 모든 항목 및 출력을 검색하려고 | 값 2를. 나는 성공적으로 값 1 또는 값 2를 파일에 쓰도록 할 수 있지만 동시에 얻을 수는 없습니다! 이것은 지금까지 내 코드입니다
(나는 시간 인을위한 쓰기 단계를 도랑을했습니다, 그냥 첫 번째 데이터의 두 비트를 출력하는 데려고) :
from lxml import etree
parser = lxml.etree.XMLParser()
tree = lxml.etree.parse(file_name, parser)
root = tree.getroot()
nsmap = {'xmlns': 'urn:tva:metadata:2010'}
with codecs.open(file_name+'.log', mode='w', encoding='utf-8') as f:
for info in root.xpath('//xmlns:Schedule', namespaces=nsmap):
value1 = (info.get('value1'))
print (serviceid)
for info in root.xpath('//xmlns:Schedule[@value1 = "value1"]/ScheduleEvent/Program', namespaces=nsmap):
value2 = (info.get('value2'))
print (crid)
이 코드 것이다 성공적으로 인쇄 모든 'value1'값은 있지만 value2는 없습니다.
나는 시도 다음 - 루프 에 대한 두 번째의 '정보 2'를 사용 - 두 번째 XPath는 함께 장난, 값 1
알려진 값을 입력 이사람이 올바른 방향으로 날 지점 수 있습니까? 당신이 게시 된 XML 작업
는
네를, 죄송합니다. 오타되었습니다. – Nick