Revision 4229
Added by Aaron Marcuse-Kubitza over 12 years ago
inputs/XAL/specimens/test.xml.ref | ||
---|---|---|
383 | 383 |
</determinationdate> |
384 | 384 |
</taxondetermination> |
385 | 385 |
<verbatimcollectorname>$Collector</verbatimcollectorname> |
386 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
387 | 386 |
</taxonoccurrence> |
388 | 387 |
<waterdepth> |
389 | 388 |
<_avg> |
inputs/NY/specimens/test.xml.ref | ||
---|---|---|
415 | 415 |
</determinationdate> |
416 | 416 |
</taxondetermination> |
417 | 417 |
<verbatimcollectorname>$Collector</verbatimcollectorname> |
418 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
419 | 418 |
</taxonoccurrence> |
420 | 419 |
<waterdepth> |
421 | 420 |
<_avg> |
inputs/ACAD/specimens/test.xml.ref | ||
---|---|---|
181 | 181 |
<determinationdate><_date><date><_dateRangeStart><value>$dateIdentified</value></_dateRangeStart></date></_date></determinationdate> |
182 | 182 |
</taxondetermination> |
183 | 183 |
<verbatimcollectorname>$recordedBy</verbatimcollectorname> |
184 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
185 | 184 |
</taxonoccurrence> |
186 | 185 |
</locationevent> |
187 | 186 |
<locationnarrative> |
inputs/U/specimens/test.xml.ref | ||
---|---|---|
229 | 229 |
<2>$Addcoll</2> |
230 | 230 |
</_merge> |
231 | 231 |
</verbatimcollectorname> |
232 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
233 | 232 |
</taxonoccurrence> |
234 | 233 |
</locationevent> |
235 | 234 |
<locationnarrative> |
inputs/ARIZ/specimens/test.xml.ref | ||
---|---|---|
458 | 458 |
<taxonfit>$IdentificationModifier</taxonfit> |
459 | 459 |
</taxondetermination> |
460 | 460 |
<verbatimcollectorname>$Collector</verbatimcollectorname> |
461 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
462 | 461 |
</taxonoccurrence> |
463 | 462 |
<waterdepth> |
464 | 463 |
<_avg> |
inputs/GBIF/specimens/test.xml.ref | ||
---|---|---|
222 | 222 |
</plantconcept_id> |
223 | 223 |
</taxondetermination> |
224 | 224 |
<verbatimcollectorname>$Collector</verbatimcollectorname> |
225 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
226 | 225 |
</taxonoccurrence> |
227 | 226 |
</locationevent> |
228 | 227 |
<locationnarrative>$Locality</locationnarrative> |
inputs/NCU-NCSC/specimens/test.xml.ref | ||
---|---|---|
129 | 129 |
</plantconcept> |
130 | 130 |
</plantconcept_id> |
131 | 131 |
</taxondetermination> |
132 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
133 | 132 |
</taxonoccurrence> |
134 | 133 |
</locationevent> |
135 | 134 |
</location> |
inputs/SpeciesLink/specimens/test.xml.ref | ||
---|---|---|
695 | 695 |
<2>$dwc_terms_recordedBy</2> |
696 | 696 |
</_alt> |
697 | 697 |
</verbatimcollectorname> |
698 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
699 | 698 |
</taxonoccurrence> |
700 | 699 |
<waterdepth> |
701 | 700 |
<_avg> |
inputs/MO/specimens/test.xml.ref | ||
---|---|---|
332 | 332 |
</plantconcept_id> |
333 | 333 |
</taxondetermination> |
334 | 334 |
<verbatimcollectorname>$Collector</verbatimcollectorname> |
335 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
336 | 335 |
</taxonoccurrence> |
337 | 336 |
</locationevent> |
338 | 337 |
<locationnarrative>$Locality</locationnarrative> |
inputs/QMOR/specimens/test.xml.ref | ||
---|---|---|
297 | 297 |
<taxonfit>$identificationQualifier</taxonfit> |
298 | 298 |
</taxondetermination> |
299 | 299 |
<verbatimcollectorname>$recordedBy</verbatimcollectorname> |
300 |
<voucher><specimenreplicate_id><specimenreplicate><catalognumber_dwc/></specimenreplicate></specimenreplicate_id></voucher> |
|
301 | 300 |
</taxonoccurrence> |
302 | 301 |
</locationevent> |
303 | 302 |
<locationnarrative> |
lib/xml_func.py | ||
---|---|---|
98 | 98 |
if is_agg_func or (is_if_no_cond and param == 'else'): |
99 | 99 |
xml_dom.replace(node, value) |
100 | 100 |
elif is_if_no_cond and param == 'then': xml_dom.remove(node) |
101 |
# Pruning optimizations |
|
102 |
else: # these should not run on functions because they would remove args |
|
103 |
# Remove empty children |
|
104 |
for child in xml_dom.NodeElemIter(node): |
|
105 |
if xml_dom.is_empty(child): xml_dom.remove(child) |
|
101 | 106 |
|
102 | 107 |
def process(node, on_error=exc.reraise, is_rel_func=None, db=None): |
103 | 108 |
'''Evaluates the XML functions in an XML tree. |
Also available in: Unified diff
xml_func.py: simplify(): Added pruning optimization that removes empty children. Empty children are created when some mappings don't apply to the current datasource.