Python XML parsing example
Steven Varco
ngcontact at varco.ch
Mon May 27 10:40:51 EDT 2002
Hi there!
I'm looking for an example in python to parse a XML file.
For the first it would be enough to have a small working example, that
parses an XML file with an XSL template an look for speciefig "Blocks", for
each block, it should create a new XML File.
Here is an example of input file and output:
~~~~~~input.xml~~~~~~
<?xml:stylesheet type="text/xsl" href="blppoc.xsl" version="1.0"
encoding="UTF-8"?>
// Block 1
<COMMANDS>
<COMMAND>
<ACTIVITY>DLG</ACTIVITY>
<APPL_ID>82015</APPL_ID>
<TABLE1>
<LINE>
<VTRNR>4711</VTRNR>
</LINE>
<LINE>
<VTRNR>4712</VTRNR>
</LINE>
</TABLE1>
</COMMAND>
// Block 2
<COMMAND>
<ACTIVITY>DLG</ACTIVITY>
<APPL_ID>82015</APPL_ID>
<TABLE1>
<LINE>
<VTRNR>4713</VTRNR>
</LINE>
<LINE>
<VTRNR>4714</VTRNR>
</LINE>
</TABLE1>
</COMMAND>
</COMMANDS>
~~~~~~~~~~~~~~~~~
There are 2 Blocks (COMMAND) and therfore, there would be 2 output files:
~~~~~~output_1.xml~~~~~~
<?xml version="1.0" encoding="UTF-8"?>
<MESSAGE IP="62.186.19.18" RTYPE="AFIS4 ">
<PRINCIPAL PASSWORD="LT1#2" USERID="guenthet"/>
<PROTOCOL MINOR="0" MAJOR="4" ID="JOGW"/>
<ARM/>
<ENVIRONMENT>
<FIELD TYPE="#INTEGER" ID="APPL_ID">
<VALUE>82015</VALUE>
</FIELD>
<FIELD TYPE="#INTEGER" ID="TRAN_ID">
<VALUE>2</VALUE>
</FIELD>
<FIELD TYPE="#STRING" ID="TRAN_NAME">
<VALUE>end_DLG#2</VALUE>
</FIELD>
</ENVIRONMENT>
<SOURCE INSTANCEID="54321" CLASSID="1085"/>
<TARGET INSTANCEID="12345" CLASSID="1085"/>
<REQUEST EVENT="Event" ID="end">
<BLOCK ID="DLG">
<FIELD TYPE="#TABLE" ID="LISTPGKAT">
<VALUE>
<ROW>
<VALUE>4711</VALUE>
<VALUE>1</VALUE>
</ROW>
</VALUE>
<VALUE>
<ROW>
<VALUE>4712</VALUE>
<VALUE>1</VALUE>
</ROW>
</VALUE>
</FIELD>
</BLOCK>
</REQUEST>
</MESSAGE>
~~~~~~~~~~~~~~~~~~~~
~~~~~~output_2.xml~~~~~~
<?xml version="1.0" encoding="UTF-8"?>
<MESSAGE IP="62.186.19.18" RTYPE="AFIS4 ">
<PRINCIPAL PASSWORD="LT1#2" USERID="guenthet"/>
<PROTOCOL MINOR="0" MAJOR="4" ID="JOGW"/>
<ARM/>
<ENVIRONMENT>
<FIELD TYPE="#INTEGER" ID="APPL_ID">
<VALUE>82015</VALUE>
</FIELD>
<FIELD TYPE="#INTEGER" ID="TRAN_ID">
<VALUE>2</VALUE>
</FIELD>
<FIELD TYPE="#STRING" ID="TRAN_NAME">
<VALUE>end_DLG#2</VALUE>
</FIELD>
</ENVIRONMENT>
<SOURCE INSTANCEID="54321" CLASSID="1085"/>
<TARGET INSTANCEID="12345" CLASSID="1085"/>
<REQUEST EVENT="Event" ID="end">
<BLOCK ID="DLG">
<FIELD TYPE="#TABLE" ID="LISTPGKAT">
<VALUE>
<ROW>
<VALUE>4713</VALUE>
<VALUE>1</VALUE>
</ROW>
</VALUE>
<VALUE>
<ROW>
<VALUE>4714</VALUE>
<VALUE>1</VALUE>
</ROW>
</VALUE>
</FIELD>
</BLOCK>
</REQUEST>
</MESSAGE>
~~~~~~~~~~~~~~~~~~~~
Does anyone have a small example how to realize this with the SAX classes,
or otherways in python?
Thanks in advance,
/steven
More information about the Python-list
mailing list