Read xml file and write data to a txt file using PERL.... urgent


R

Ram

Hi,

I am new to perl and xml.... please help me out with the following as
this is urgent:
Can anyone help me with the code....

I have a xml file:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE FOF (View Source for full doctype...)>
- <FOF Name="BBH3" Date="20070413" Last="1">
- <OB cl="FOMessage.FIOMMessage.FIOMObject" no="1019.1008.51"
vr="1.43" od="1" mn="0">
<tx no="51" nm="provider1ID" mn="0" ky="1" />
<tx no="51" nm="provider2ID" mn="0" ky="1" />
<tx no="51" nm="provider3ID" mn="0" ky="1" />
<sp no="1008" nm="creationTime" mn="0" />
<tx no="1008" nm="author" mn="0" />
<nu no="1019" nm="revisionNo" mn="0" />
<sp no="1019" nm="createTimestamp" mn="0" />
<tx no="1019" nm="createUserID" mn="0" vl="WMS" />
<tx no="1019" nm="initiatorId" mn="0" />
<tx no="1019" nm="messageFromID" mn="0" vl="iss-
blade4.local.wmgruppe.de_21221_2_0" />
<tx no="1019" nm="messageToID" mn="0" vl="iss-
blade4.local.wmgruppe.de_21221_2_0" />
<fg no="1019" nm="isEndOfDelivery" mn="0" />
<fg no="1019" nm="isExecuted" mn="0" />
- <R no="1019" nm="fiomData">
- <RP mn="0">
- <OB cl="QuoteHolder.TopLevelObject.FIOMObject" no="208.1080.51"
vr="1.43" od="2" mn="3">
<tx no="51" nm="provider1ID" mn="0" ky="1" />
<tx no="51" nm="provider2ID" mn="1" ky="1" vl="WMS" ov="" />
<tx no="51" nm="provider3ID" mn="0" ky="1" />
<cr no="208" nm="currency" mn="4" ky="1" vl="6 WKN 965642
Waehrung_BdB EO ISIN EU0009656420 BoersenkuerzelInland EUR
Waehrung_ISO4217 EUR DB_KEY 69" />
<R no="1080" nm="result" />
- <R no="1080" nm="vdpsInformation">
- <RP mn="0">
+ <OB cl="VDPSInformation.FIOMObject" no="160.51" vr="1.43" od="3"
mn="3">
<tx no="51" nm="provider1ID" mn="0" ky="1" />
<tx no="51" nm="provider2ID" mn="0" ky="1" />
<tx no="51" nm="provider3ID" mn="0" ky="1" />
<fg no="160" nm="hasPendingActivities" mn="4" vl="FALSE" />
<tx no="160" nm="vstName" mn="0" vl="QuoteHolder" />
<tx no="160" nm="vstVersion" mn="0" vl="WM_003a" />
<em no="160" nm="foType" mn="4" dm="FOType" vl="500" />
<tx no="160" nm="createUserID" mn="0" vl="WMS" />
<sp no="160" nm="createTimestamp" mn="0" vl="05.07.2005 - 22:02:15
@0" />
<tx no="160" nm="updateUserID" mn="3" vl="WMS" ov="unknown" />
<sp no="160" nm="updateTimestamp" mn="3" vl="16.04.2007 - 10:24:40
@0" ov="15.04.2007 - 11:26:04 @0" />
<nu no="160" nm="vstQuality" mn="4" vl="10" />
<fg no="160" nm="isRelevant" mn="4" vl="TRUE" />
<tx no="160" nm="modificationReason" mn="0" />
<nu no="160" nm="revisionNo" mn="3" vl="529" ov="528" />
<tx no="160" nm="remarks" mn="0" />
<fg no="160" nm="hasFutureMessages" mn="0" />
<nu no="160" nm="vstRequiredQuality" mn="4" vl="5" />
<tx no="160" nm="provider1Symbol" mn="0" ky="1" />
<tx no="160" nm="provider2Symbol" mn="0" ky="1" />
<tx no="160" nm="provider3Symbol" mn="0" ky="1" />
<em no="160" nm="dataStatusType" mn="0" dm="DataStatusType" />
<nu no="160" nm="vstMaximumQuality" mn="0" vl="10" />
<nu no="160" nm="newVstQuality" mn="1" vl="10" ov="" />
<fg no="160" nm="isChecked" mn="0" />
<tx no="160" nm="messageInfo" mn="0" />
<fg no="160" nm="fotWizardIsDisabled" mn="0" />
<tx no="160" nm="foDBKey" mn="0" />
<fg no="160" nm="isOnDB" mn="4" vl="TRUE" />
<fg no="160" nm="isFastInsertion" mn="0" />
<em no="160" nm="priorityType" mn="0" dm="PriorityType" />
<R no="160" nm="genericInformations" />
<R no="160" nm="areaInformations" />
</OB>
</RP>
</R>
<R no="1080" nm="control" />
<R no="1080" nm="pendingActivity" />
<R no="1080" nm="pendingChange" />
- <WR no="208" tn="BTID3" nm="instrument">
<id no="0_BTID3" tn="BTID3" nm="destinationKey" mn="3" vl="1 WKN
977961" ov="5 CommonCode 8492301 WKN 977961 ISIN DE0009779611
BoersenkuerzelInland FPJB DB_KEY 18022" />
</WR>
- <R no="208" nm="recentQuoteValues">
- <RP mn="0">
- <OB cl="QuoteValue.FIOMObject" no="213.51" vr="1.43" od="4" mn="1">
<tx no="51" nm="provider1ID" mn="0" ky="1" />
<tx no="51" nm="provider2ID" mn="1" ky="1"
vl="20070413K01005L21NULK02_1_4" ov="20070413K01005L21NULK02_1_4" />
<tx no="51" nm="provider3ID" mn="0" ky="1" />
<tx no="213" nm="quoteTypeIdSymbol" mn="1" vl="03_K02_1_4"
ov="03_K02_1_4" />
<em no="213" nm="valueType" mn="1" dm="ValueType" vl="9001"
ov="9001" />
<ft no="213" nm="quoteValue" mn="1" vl="75.35" ov="75.35" />
<em no="213" nm="valueStyleType" mn="1" dm="ValueStyleType" vl="5"
ov="5" />
<ft no="213" nm="quoteSize" mn="0" />
<sp no="213" nm="quoteTime" mn="1" vl="13.04.2007 - 99:99:99 @99"
ov="13.04.2007 - 99:99:99 @99" />
<em no="213" nm="sizeStyleType" mn="0" dm="SizeStyleType" />
<em no="213" nm="reliabilityType" mn="0" dm="ReliabilityType" />
<fg no="213" nm="isCorrection" mn="0" />
<em no="213" nm="settlementCodeType" mn="0" dm="SettlementCodeType" /<em no="213" nm="settlementStatusType" mn="0"
dm="QuoteSettleStatusType" />
<em no="213" nm="valueStyleRefinedType" mn="1"
dm="ValueStyleRefinedType" vl="9121" ov="9121" />
<tx no="213" nm="quoteTypeSchemeSymbol" mn="1" vl="03_Fondspreise"
ov="03_Fondspreise" />
<em no="213" nm="fixingCapitalEventType" mn="0"
dm="FixingCapitalEventType" />
<lg no="213" nm="valueDescr" mn="0" />
<R no="213" nm="listingInformation" />
<R no="213" nm="providedService" />
<R no="213" nm="quoteListings" />
<RD no="213" nm="quoteType" mn="0" kyA="quoteTypeIdSymbol/
quoteTypeSchemeSymbol" />
</OB>
</RP>
- <RP mn="0">
- <OB cl="QuoteValue.FIOMObject" no="213.51" vr="1.43" od="5"
mn="1">
<tx no="51" nm="provider1ID" mn="0" ky="1" />
<tx no="51" nm="provider2ID" mn="1" ky="1"
vl="20070413K02004L21NULK02_1_4" ov="20070413K02004L21NULK02_1_4" />
<tx no="51" nm="provider3ID" mn="0" ky="1" />
<tx no="213" nm="quoteTypeIdSymbol" mn="1" vl="03_K02_1_4"
ov="03_K02_1_4" />
<em no="213" nm="valueType" mn="1" dm="ValueType" vl="9002"
ov="9002" />
<ft no="213" nm="quoteValue" mn="1" vl="71.76" ov="71.76" />
<em no="213" nm="valueStyleType" mn="1" dm="ValueStyleType" vl="4"
ov="4" />
<ft no="213" nm="quoteSize" mn="0" />
<sp no="213" nm="quoteTime" mn="1" vl="13.04.2007 - 99:99:99 @99"
ov="13.04.2007 - 99:99:99 @99" />
<em no="213" nm="sizeStyleType" mn="0" dm="SizeStyleType" />
<em no="213" nm="reliabilityType" mn="0" dm="ReliabilityType" />
<fg no="213" nm="isCorrection" mn="0" />
<sp no="213" nm="validUntil" mn="0" />
<em no="213" nm="settlementTimeType" mn="0"
dm="SettlementTimeType" />
<em no="213" nm="settlementCodeType" mn="0"
dm="SettlementCodeType" />
<em no="213" nm="settlementStatusType" mn="0"
dm="QuoteSettleStatusType" />
<em no="213" nm="valueStyleRefinedType" mn="1"
dm="ValueStyleRefinedType" vl="9121" ov="9121" />
<tx no="213" nm="quoteTypeSchemeSymbol" mn="1" vl="03_Fondspreise"
ov="03_Fondspreise" />
<em no="213" nm="fixingCapitalEventType" mn="0"
dm="FixingCapitalEventType" />
<lg no="213" nm="valueDescr" mn="0" />
<R no="213" nm="listingInformation" />
<R no="213" nm="providedService" />
<R no="213" nm="quoteListings" />
<RD no="213" nm="quoteType" mn="0" kyA="quoteTypeIdSymbol/
quoteTypeSchemeSymbol" />
</OB>
</RP>
- <R no="208" nm="providedService">
- <RP mn="0">
- <OB cl="ProvidedService.FIOMObject" no="310.51" vr="1.43" od="11"
mn="4">
<tx no="51" nm="provider1ID" mn="0" ky="1" />
<tx no="51" nm="provider2ID" mn="0" ky="1" />
<tx no="51" nm="provider3ID" mn="0" ky="1" />
<dt no="310" nm="beginDate" mn="0" />
<dt no="310" nm="endDate" mn="0" />
- <WR no="310" tn="BTID2" nm="institution">
<id no="0_BTID2" tn="BTID2" nm="destinationKey" mn="3" vl="1
Institution 848758" ov="5 Abwicklungsstelle 4039 Betreuer 4039
Institution 848758 IBEI DE08487588 DB_KEY 54487" />
</WR>
- <WR no="310" tn="BTID5" nm="instrumentService">
<id no="0_BTID5" tn="BTID5" nm="destinationKey" mn="4" vl="1
InvestmentFondsPreise WMGruppe" />
</WR>
</OB>
</RP>
</R>
</OB>
</RP>
</R>
</OB>

Output:
I need a perl script and the output (txt file) of the perl script is
as follows:
#(ISIN, valueType, quoteValue,quoteTime)
DE0009779611,9001,75.35,20070413
DE0009779612,9001,97.12,20070413
..
..

Need to take the Date from the header ie 3rd line and compare it with
the date in quoteTime. If the date matches, write it into txt file.If
it doesn't match, then discard
Here i need to get only the quoteValue for valueType =9001 and not for
9002

Would appreciate if anyone helps me with this
 
Ad

Advertisements

S

Scott Bryce

Ad

Advertisements


Top