The code below returns all the “str1″‘s but I only want the first “str1” for each one of these: CrntRgstns->BrnchOfLocs->BrnchOfLoc. As in just “13A MAIN ST” not also “8 WATER ST.” Is there some type of [0] that would accomplish this? Thank you.
Current Code:
JavaScript
x
8
1
from lxml import etree
2
3
f = open(r'C:UsersAndrew/Desktop/xml_file.xml')
4
5
tree = etree.parse(f)
6
for e in tree.xpath('.//CrntRgstns/following-sibling::BrnchOfLocs/BrnchOfLoc'):
7
print(e.attrib['str1'])
8
Current Output:
JavaScript
1
3
1
13A MAIN ST
2
8 WATER ST
3
Desired Output:
JavaScript
1
2
1
13A MAIN ST
2
xml for 1 individual:
JavaScript
1
22
22
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<IAPDIndividualReport GenOn="2021-01-03">
3
<Indvls>
4
<Indvl>
5
<Info lastNm="Modafferi" firstNm="Paul" midNm="Anthony" indvlPK="2762691" actvAGReg="Y" link="https://adviserinfo.sec.gov/individual/summary/2762691"/>
6
<OthrNms>
7
<OthrNm lastNm="BIAMONTE" firstNm="PAUL" midNm="F"/>
8
<OthrNm lastNm="Modafferi" firstNm="Paul" midNm="A"/>
9
<OthrNm lastNm="Modafferi" firstNm="Paul" midNm="Anthony"/>
10
</OthrNms>
11
<CrntEmps>
12
<CrntEmp orgNm="MERRILL LYNCH, PIERCE, FENNER & SMITH INCORPORATED" orgPK="7691" str1="ONE BRYANT PARK" city="NEW YORK" state="NY" cntry="United States" postlCd="10036">
13
<CrntRgstns>
14
<CrntRgstn regAuth="NJ" regCat="RA" st="APPROVED" stDt="2019-11-25"/>
15
</CrntRgstns>
16
<BrnchOfLocs>
17
<BrnchOfLoc str1="13A MAIN ST" city="SPARTA" state="NJ" cntry="United States" postlCd="07871"/>
18
<BrnchOfLoc str1="8 WATER ST" city="EAGLE" state="CA" cntry="United States" postlCd="90232"/>
19
</BrnchOfLocs>
20
</CrntEmp>
21
</CrntEmps>
22
Advertisement
Answer
To fetch first item, use [1]
(you were so close with 0!).
For example: tree.xpath('.//CrntRgstns/following-sibling::BrnchOfLocs/BrnchOfLoc[1]')
Try:
JavaScript
1
8
1
from lxml import etree
2
3
f = open(r'C:UsersAndrew/Desktop/xml_file.xml')
4
5
tree = etree.parse(f)
6
for e in tree.xpath('.//CrntRgstns/following-sibling::BrnchOfLocs/BrnchOfLoc[1]'):
7
print(e.attrib['str1'])
8
Output:
JavaScript
1
2
1
13A MAIN ST
2