XML file remove <car> sibling using elementTree and jython
James Kelly <[email protected]> Sun, 1 Nov 2020 06:44:52 -0600
| Newsgroups | gmane.comp.lang.jython.user |
|---|---|
| Message-ID | <CANio7e_CNXDuS4xTopYPRQpLwHvDsH=cjY4S-aG4tc5Ci8OYng@mail.gmail.com> |
--===============6622769501871054656==
Content-Type: multipart/alternative; boundary="000000000000d7903105b30affcd"
--000000000000d7903105b30affcd
Content-Type: text/plain; charset="UTF-8"
Win-10, Java 1.8, current JMRI version, NetBeans IDE, Jython, elementTree
I'm pulling elements from OperationsCarRoster.xml and want to delete some
siblings. Since all siblings have the same name <car> how can I select and
delete a specific car using attributes?
for example how do I use elementTree Remove(subelement) to delete a car
with id="MILW1001"
i'm using Jython (Python) on Win-10 and elementTree
here's all the code as I have it right now.
import xml.etree.ElementTree as ET
def __init__(self):
#def open_car_xml_file():
global trainTree
global trainRoot
trainTree = ET.parse('train.xml')
trainRoot = trainTree.getroot()
#self.add_train_rfid_tags()
print trainRoot
def drop_car(self, car, engine, location):
for elem in trainRoot:
for subelem in elem.findall('car'):
indentifier = str(subelem.get('engine', default=None))
if indentifier == engine:
indentifier2 = str(subelem.get('id', default=None))
if indentifier2 == car:
getDroppedCarData = [0,1,2,3,4,5,6,7]
getDroppedCarData[0] = subelem.get('id',
default=None)
getDroppedCarData[1] = subelem.get('roadName',
default=None)
getDroppedCarData[2] = subelem.get('roadNumber',
default=None)
getDroppedCarData[3] = subelem.get('type',
default=None)
getDroppedCarData[4] = subelem.get('color',
default=None)
getDroppedCarData[5] = subelem.get('rfid',
default=None)
getDroppedCarData[6] = subelem.get('locationId',
default=None)
getDroppedCarData[7] = subelem.get('owner',
default=None)
(how do I using remove() to delete this record?
return getDroppedCarData
--000000000000d7903105b30affcd
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:large"><sp=
an style=3D"color:rgb(51,51,51);font-family:"Helvetica Neue",Helv=
etica,Arial,sans-serif;font-size:14px">Win-10, Java 1.8, current JMRI versi=
on, NetBeans IDE, Jython, elementTree</span><br style=3D"box-sizing:border-=
box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Ar=
ial,sans-serif;font-size:14px"><span style=3D"color:rgb(51,51,51);font-fami=
ly:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px">I&=
#39;m pulling elements from OperationsCarRoster.xml and want to delete some=
siblings. Since all siblings have the same name <car> how can I sele=
ct and delete a specific car using attributes?</span><br style=3D"box-sizin=
g:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Hel=
vetica,Arial,sans-serif;font-size:14px"><span style=3D"color:rgb(51,51,51);=
font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size=
:14px">for example how do I use elementTree Remove(subelement) to delete a =
car with=C2=A0</span><span style=3D"box-sizing:border-box;color:rgb(51,51,5=
1);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-s=
ize:14px">id=3D"MILW1001"</span>=C2=A0</div><div class=3D"gmail_d=
efault" style=3D"font-size:large"><br></div><span style=3D"color:rgb(51,51,=
51);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-=
size:14px">i'm using Jython (Python) on Win-10 and elementTree</span><b=
r style=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:"Helv=
etica Neue",Helvetica,Arial,sans-serif;font-size:14px"><span style=3D"=
color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,=
sans-serif;font-size:14px">here's all the code as I have it right now.<=
/span><br style=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:&q=
uot;Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px"><br sty=
le=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:"Helvetica=
Neue",Helvetica,Arial,sans-serif;font-size:14px"><span style=3D"color=
:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-=
serif;font-size:14px">import xml.etree.ElementTree as ET</span><br style=3D=
"box-sizing:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue=
",Helvetica,Arial,sans-serif;font-size:14px"><div style=3D"box-sizing:=
border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helve=
tica,Arial,sans-serif;font-size:14px">def __init__(self):</div><div style=
=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:"Helvetica N=
eue",Helvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 #def open_car_xml_file():</div><div style=3D"box-sizin=
g:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Hel=
vetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 global trainTree</div><div style=3D"box-sizing:border-box;color:rgb(=
51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif=
;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 global trainRoot=
</div><div style=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:&=
quot;Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px">=C2=A0=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 trainTree =3D ET.parse('train.xml&#=
39;)</div><div style=3D"box-sizing:border-box;color:rgb(51,51,51);font-fami=
ly:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 trainRoot =3D trainTree.getroot()=
</div><div style=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:&=
quot;Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px">=C2=A0=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 #self.add_train_rfid_tags()</div><div s=
tyle=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:"Helveti=
ca Neue",Helvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 print trainRoot</div><br style=3D"box-sizing:borde=
r-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,=
Arial,sans-serif;font-size:14px"><div style=3D"box-sizing:border-box;color:=
rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-s=
erif;font-size:14px">def drop_car(self, car, engine, location):</div><div s=
tyle=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:"Helveti=
ca Neue",Helvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 for elem in trainRoot:</div><div style=3D"box-sizing:border-box;=
color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,=
sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 for su=
belem in elem.findall('car'):</div><div style=3D"box-sizing:border-=
box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Ar=
ial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 indentifier =3D str(subelem.get('engine', default=3DN=
one))</div><div style=3D"box-sizing:border-box;color:rgb(51,51,51);font-fam=
ily:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if indentifier =3D=
=3D engine:</div><div style=3D"box-sizing:border-box;color:rgb(51,51,51);fo=
nt-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1=
4px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
indentifier2 =3D str(subelem.get('id', default=3DNone))</div><div s=
tyle=3D"box-sizing:border-box;color:rgb(51,51,51);font-family:"Helveti=
ca Neue",Helvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if indentifier2 =3D=3D=
car:</div><div style=3D"box-sizing:border-box;color:rgb(51,51,51);font-fam=
ily:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 getDroppedCarData =3D [0,1,2,3,4,5,6,7]</div><div style=3D"box-s=
izing:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue"=
,Helvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[0] =
=3D subelem.get('id', default=3DNone)</div><div style=3D"box-sizing=
:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helv=
etica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[1] =3D s=
ubelem.get('roadName', default=3DNone)</div><div style=3D"box-sizin=
g:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Hel=
vetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[2] =3D s=
ubelem.get('roadNumber', default=3DNone)</div><div style=3D"box-siz=
ing:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",H=
elvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[3] =
=3D subelem.get('type', default=3DNone)</div><div style=3D"box-sizi=
ng:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",He=
lvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[4] =3D =
subelem.get('color', default=3DNone)</div><div style=3D"box-sizing:=
border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helve=
tica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[5] =3D s=
ubelem.get('rfid', default=3DNone)</div><div style=3D"box-sizing:bo=
rder-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helveti=
ca,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[6] =3D sube=
lem.get('locationId', default=3DNone)</div><div style=3D"box-sizing=
:border-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helv=
etica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 getDroppedCarData[7] =3D s=
ubelem.get('owner', default=3DNone)</div><div style=3D"box-sizing:b=
order-box;color:rgb(51,51,51);font-family:"Helvetica Neue",Helvet=
ica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (how do I using remove() to d=
elete this record?</div><div style=3D"box-sizing:border-box;color:rgb(51,51=
,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font=
-size:14px">=C2=A0</div><div class=3D"gmail_default" style=3D"font-size:lar=
ge"><span style=3D"color:rgb(51,51,51);font-family:"Helvetica Neue&quo=
t;,Helvetica,Arial,sans-serif;font-size:14px">=C2=A0 =C2=A0 return getDropp=
edCarData</span>=C2=A0<br></div></div>
--000000000000d7903105b30affcd--
--===============6622769501871054656==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============6622769501871054656==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Jython-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jython-users
--===============6622769501871054656==--