[XML-SIG] Learning to use elementtree
Doran, Harold
HDoran at air.org
Tue Apr 1 14:35:37 CEST 2008
David et al:
Attached is a sample xml file. Below is my python code. I am using
python 2.5.2 on a Windows XP machine.
Test.py
from xml.etree.ElementTree import ElementTree as ET
# create a new file defined by the user
f = open('output.txt', 'w')
et = ET(file='g:\python\ml\out_g3r_b2.xml')
for statentityref in
et.findall('admin/responseanalyses/analysis/analysisdata/statentityref')
:
for statval in
et.findall('admin/responseanalyses/analysis/analysisdata/statentityref/s
tatval'):
print >> f, statentityref.attrib['id'], '\t',
statval.attrib['type'], '\t', statval.attrib['value']
f.close()
If you run this you will see the output organized almost exactly as I
need it. But, there is a bug in my program, which I suspect is in the
order in which I am looping. For example, here is a snippet of output
from the file output.txt. I've added in some comments so you can see
where I am struggling.
9568 OmitCount 0.000000 # This is correct
9568 NotReachedCount 0.000000 # This is correct
9568 PolyserialCorrelation 0.602525 # This is correct
9568 AdjustedPolyserial 0.553564 # This is correct
9568 AverageScore 0.817348 # This is correct
9568 StdevItemScore 0.386381 # This is correct
9568 OmitCount 0.000000 # This is NOT correct
9568 NotReachedCount 0.000000 # This is NOT correct
9568 PolyserialCorrelation 0.672088 # This is NOT correct
9568 AdjustedPolyserial 0.590175 # This is NOT correct
9568 AverageScore 1.034195 # This is NOT correct
9568 StdevItemScore 0.926668 # This is NOT correct
Now, here is what *should* be returned. Note that I have manually
changed the item id (the number preceding the text) to 9569. The data
are pulled in correctly, but for some reason I am not looping properly
to get the correct item ID to line up with its corresponding data.
9568 OmitCount 0.000000
9568 NotReachedCount 0.000000
9568 PolyserialCorrelation 0.602525
9568 AdjustedPolyserial 0.553564
9568 AverageScore 0.817348
9568 StdevItemScore 0.386381
9569 OmitCount 0.000000 # Note the item ID has been modified
here and below.
9569 NotReachedCount 0.000000
9569 PolyserialCorrelation 0.672088
9569 AdjustedPolyserial 0.590175
9569 AverageScore 1.034195
9569 StdevItemScore 0.926668
Last, notice the portion of code
admin/responseanalyses/analysis/analysisdata/statentityref')
I know this is what to use only because I manually went through the xml
file to examine its hierarchical structure. I assume this is bad
pratice. Is there a way to examine the parent-child structure of an XML
file in python so I can see the hierarchical structure?
Thanks,
Harold
> -----Original Message-----
> From: David Stanek [mailto:dstanek at dstanek.com]
> Sent: Tuesday, April 01, 2008 6:39 AM
> To: Doran, Harold
> Cc: xml-sig at python.org
> Subject: Re: [XML-SIG] Learning to use elementtree
>
> 2008/3/31 Doran, Harold <HDoran at air.org>:
> >
> > But, now I am trying to apply the code I have written to a real xml
> > file I need to work with and things are hitting a road block. Is
> > anyone on this able willing to look at an xml file I can
> send them and
> > work with me through a small example to see if I can get
> this to work?
> >
>
> What is the road block?
>
>
> --
> David
> http://www.traceback.org
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: out_g3r_b2.xml
Type: text/xml
Size: 64655 bytes
Desc: out_g3r_b2.xml
Url : http://mail.python.org/pipermail/xml-sig/attachments/20080401/928e2491/attachment-0001.bin
More information about the XML-SIG
mailing list