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" />
<em no="160" nm="blockingCodeType" mn="0" dm="BlockingCodeType" />
<em no="160" nm="logicDeletionType" mn="0" dm="LogicDeletionType" />
<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" />
<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>
- <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