Not able to get nodelist using selectNodes using namespace or without
LavanyaTApr 10 2012 — edited Apr 10 2012Hi,
I have a requirement to parse an XML and retrieve some nodeValues. The issue that I'm facing is that if I have a namespace like this xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" in the xml, the NodeList length is always 0. But if I remove the namespace from the XML and run the code, it gets 2 records. Could someone help me understand if I'm missing something?
Here is the code I'm using:
String pattern = "/Document/CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/PmtId/InstrId/text()";
String file = "c:\\Docs\\XMLDDv2example2.xml";
DOMParser dp = new DOMParser();
dp.parse(createURL(file));
XMLDocument xd = dp.getDocument();
XMLElement element = (XMLElement) xd.getDocumentElement();
CustomNSResolver resolver=new CustomNSResolver();
resolver.resolveNamespacePrefix("uii");
NodeList nl = element.selectNodes(pattern,resolver);
System.out.println("ni "+nl+ " nl len "+nl.getLength());
for (int i = 0; i < nl.getLength(); i++)
{
System.out.println(nl.item(i).getNodeValue());
} // end for
import oracle.xml.parser.v2.NSResolver;
public class CustomNSResolver implements NSResolver{
public java.lang.String resolveNamespacePrefix(java.lang.String
prefix){
return new String("urn:iso:std:iso:20022:tech:xsd:pain.008.001.02");
}
}
I tried with and without using the resolver. No difference in the output.
Here is the XML:
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid XML Studio - FREE Community Edition 7.1.6.1440 (http://www.liquid-technologies.com) -->
<Document xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CstmrDrctDbtInitn>
<GrpHdr>
<MsgId>1234</MsgId>
<CreDtTm>2012-03-22T14:00:00</CreDtTm>
<NbOfTxs>2</NbOfTxs>
<InitgPty>
<Id>
<OrgId>
<Othr>
<Id>TEST</Id>
</Othr>
</OrgId>
</Id>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>678905433</PmtInfId>
<PmtMtd>ABCD</PmtMtd>
<BtchBookg>false</BtchBookg>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>0</CtrlSum>
<PmtTpInf>
<SvcLvl>
<Cd>SSSS</Cd>
</SvcLvl>
<LclInstrm>
<Cd>CSSS</Cd>
</LclInstrm>
<SeqTp>SDF</SeqTp>
<CtgyPurp>
<Cd>ESDS</Cd>
</CtgyPurp>
</PmtTpInf>
<ReqdColltnDt>2012-03-01</ReqdColltnDt>
<Cdtr>
<Nm>asdf</Nm>
<PstlAdr>
<Ctry>er</Ctry>
<AdrLine>rtty</AdrLine>
<AdrLine>RTYTTY</AdrLine>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>23T567</IBAN>
</Id>
</CdtrAcct>
<CdtrAgt>
<FinInstnId>
<BIC>FGHG</BIC>
<Nm>HTRYTRY</Nm>
<PstlAdr>
<Ctry>GFN</Ctry>
<AdrLine>GHJ5R</AdrLine>
<AdrLine>24G ERT</AdrLine>
</PstlAdr>
</FinInstnId>
<BrnchId>
<Id>565</Id>
</BrnchId>
</CdtrAgt>
<ChrgBr>SLEV</ChrgBr>
<DrctDbtTxInf>
<PmtId>
<InstrId>46547678</InstrId>
<EndToEndId>46547678</EndToEndId>
</PmtId>
<InstdAmt Ccy="eee">TYYU</InstdAmt>
<DrctDbtTx>
<MndtRltdInf>
<MndtId>DFG34</MndtId>
<DtOfSgntr>2012-02-01</DtOfSgntr>
<AmdmntInd>ERe</AmdmntInd>
<Frqcy>GFH</Frqcy>
</MndtRltdInf>
<CdtrSchmeId>
<Id>
<PrvtId>
<Othr>
<Id>G4535</Id>
<SchmeNm>
<Prtry>FGGG</Prtry>
</SchmeNm>
</Othr>
</PrvtId>
</Id>
</CdtrSchmeId>
</DrctDbtTx>
<DbtrAgt>
<FinInstnId>
<BIC>YUIYUI</BIC>
<Nm>HJKKJJK</Nm>
<PstlAdr>
<Ctry>HHJ</Ctry>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
<Dbtr>
<Nm>GHJGHJK</Nm>
<PstlAdr>
<Ctry>GHJ</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>H565767</IBAN>
</Id>
</DbtrAcct>
<RmtInf>
<Ustrd>JKT 5346 TY</Ustrd>
</RmtInf>
</DrctDbtTxInf>
</PmtInf>
<PmtInf>
<PmtInfId>3453453</PmtInfId>
<PmtMtd>FG</PmtMtd>
<BtchBookg>BNM</BtchBookg>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>0</CtrlSum>
<PmtTpInf>
<SvcLvl>
<Cd>DDDDDDDD</Cd>
</SvcLvl>
<LclInstrm>
<Cd>FGHFGH</Cd>
</LclInstrm>
<SeqTp>FHFG</SeqTp>
<CtgyPurp>
<Cd>FH</Cd>
</CtgyPurp>
</PmtTpInf>
<ReqdColltnDt>2012-03-10</ReqdColltnDt>
<Cdtr>
<Nm>VDFHGFHGF</Nm>
<PstlAdr>
<Ctry>FG</Ctry>
<AdrLine>FGHFG FYFG</AdrLine>
<AdrLine>FGHFG </AdrLine>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>FGH4353</IBAN>
</Id>
</CdtrAcct>
<CdtrAgt>
<FinInstnId>
<BIC>GHJGHJGH</BIC>
<Nm>GFJGH</Nm>
<PstlAdr>
<Ctry>FTY</Ctry>
<AdrLine>HJKGJ GFHJ</AdrLine>
<AdrLine>FJSDD H</AdrLine>
</PstlAdr>
</FinInstnId>
<BrnchId>
<Id>7567</Id>
</BrnchId>
</CdtrAgt>
<ChrgBr>HFGH</ChrgBr>
<DrctDbtTxInf>
<PmtId>
<InstrId>534534</InstrId>
<EndToEndId>654</EndToEndId>
</PmtId>
<InstdAmt Ccy="GJ">9</InstdAmt>
<DrctDbtTx>
<MndtRltdInf>
<MndtId>AHJH6</MndtId>
<DtOfSgntr>2012-02-10</DtOfSgntr>
<AmdmntInd>GJ</AmdmntInd>
<Frqcy>GHJGH</Frqcy>
</MndtRltdInf>
<CdtrSchmeId>
<Id>
<PrvtId>
<Othr>
<Id>GHJGHJ65</Id>
<SchmeNm>
<Prtry>GHJGHJ</Prtry>
</SchmeNm>
</Othr>
</PrvtId>
</Id>
</CdtrSchmeId>
</DrctDbtTx>
<DbtrAgt>
<FinInstnId>
<BIC>GHJ6H</BIC>
<Nm>GHJGHJ</Nm>
<PstlAdr>
<Ctry>GHJGH</Ctry>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
<Dbtr>
<Nm>DHJGJHG</Nm>
<PstlAdr>
<Ctry>GHJ</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>HJGHJGH000</IBAN>
</Id>
</DbtrAcct>
<RmtInf>
<Ustrd>TTYUTYUIMNB</Ustrd>
</RmtInf>
</DrctDbtTxInf>
</PmtInf>
</CstmrDrctDbtInitn>
</Document>
Any help is much appreciated.
Thnaks,
Lavanya