I am unable to get the identical XML nodes from the following XML file. I don't understand why this code
XmlNodeList xList = xmlRespDoc.SelectNodes("/FCUBS_BODY/Cust-Account-Full/Txn-Profile");
is returning NULL. What I wanted to do is, retrieve all the identical nodes <Txn-Profile>
and put in in a string array or list. I think I am missing something here to retrieve my desired output.
Please suggest.
XML:
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S='http://schemas.xmlsoap.org/soap/envelope/'>
<S:Header>
<work:WorkContext xmlns:work='http://oracle.com/weblogic/soap/workarea/'>rO0ABXekABx3ZWJs</work:WorkContext>
</S:Header>
<S:Body>
<QUERYCUSTACC_IOFS_RES xmlns='http://fcubs.ofss.com/service/FCUBSAccService'>
<FCUBS_HEADER>
<SERVICE>FCUBSAccService</SERVICE>
<OPERATION>QueryCustAcc</OPERATION>
<SOURCE_OPERATION></SOURCE_OPERATION>
<MSGSTAT>SUCCESS</MSGSTAT>
<ADDL/>
</FCUBS_HEADER>
<FCUBS_BODY>
<Cust-Account-Full>
<Txn-Profile>
<TXN_CODE>CHD</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>150000</TOTAL_AMOUNT>
<TXN_DESCUI>Cash Deposit1</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>CHW</TXN_CODE>
<NO_OF_TXN>8</NO_OF_TXN>
<MAX_TXN_AMOUNT>150000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>200000</TOTAL_AMOUNT>
<TXN_DESCUI>Cash Withdrawal1</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>DCL</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>200000</TOTAL_AMOUNT>
<TXN_DESCUI>Deposit By Instruments (Clearing)</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>DFR</TXN_CODE>
<NO_OF_TXN>1</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>100000</TOTAL_AMOUNT>
<TXN_DESCUI>Deposit Of Foreign Remittance </TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>DFT</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>200000</TOTAL_AMOUNT>
<TXN_DESCUI>Deposit By Instruments (Internal FT)</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>WCL</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>80000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>100000</TOTAL_AMOUNT>
<TXN_DESCUI>Withdrawal By Instruments (Clearing)</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>WFT</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>50000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>100000</TOTAL_AMOUNT>
<TXN_DESCUI>Withdrawal By Instruments (Internal FT)</TXN_DESCUI>
</Txn-Profile>
</Cust-Account-Full>
<FCUBS_WARNING_RESP>
<WARNING>
<WCODE>ST-SAVE-023</WCODE>
<WDESC>Record Successfully Retrieved</WDESC>
</WARNING>
</FCUBS_WARNING_RESP>
</FCUBS_BODY>
</QUERYCUSTACC_IOFS_RES>
</S:Body>
</S:Envelope>
My code is:
public static void Main(string[] args)
{
XmlDocument xmlRespDoc = new XmlDocument();
xmlRespDoc.LoadXml(@"D:\xmlData.xml");
XmlNodeList xList = xmlRespDoc.SelectNodes("/FCUBS_BODY/Cust-Account-Full/Txn-Profile");
if (xList != null)
foreach (XmlNode node in xList)
{
Console.WriteLine(node.InnerXml);
}
Console.ReadLine();
}
OUTPUT:
<?xml version='1.0' encoding='UTF-8'?>
<Cust-Account-Full>
<Txn-Profile>
<TXN_CODE>CHD</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>150000</TOTAL_AMOUNT>
<TXN_DESCUI>Cash Deposit1</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>CHW</TXN_CODE>
<NO_OF_TXN>8</NO_OF_TXN>
<MAX_TXN_AMOUNT>150000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>200000</TOTAL_AMOUNT>
<TXN_DESCUI>Cash Withdrawal1</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>DCL</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>200000</TOTAL_AMOUNT>
<TXN_DESCUI>Deposit By Instruments (Clearing)</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>DFR</TXN_CODE>
<NO_OF_TXN>1</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>100000</TOTAL_AMOUNT>
<TXN_DESCUI>Deposit Of Foreign Remittance </TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>DFT</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>100000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>200000</TOTAL_AMOUNT>
<TXN_DESCUI>Deposit By Instruments (Internal FT)</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>WCL</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>80000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>100000</TOTAL_AMOUNT>
<TXN_DESCUI>Withdrawal By Instruments (Clearing)</TXN_DESCUI>
</Txn-Profile>
<Txn-Profile>
<TXN_CODE>WFT</TXN_CODE>
<NO_OF_TXN>5</NO_OF_TXN>
<MAX_TXN_AMOUNT>50000</MAX_TXN_AMOUNT>
<TOTAL_AMOUNT>100000</TOTAL_AMOUNT>
<TXN_DESCUI>Withdrawal By Instruments (Internal FT)</TXN_DESCUI>
</Txn-Profile>
</Cust-Account-Full>
You can use LINQ to XML in this manner:
var profiles = XElement.Load(new StreamReader(xmlFileStream)).Descendants("Txn-Profile");
where xmlFileStream
is the FileStream of the xml.
You can get it via elements tag name like this:
XmlNodeList xList = xmlRespDoc.GetElementsByTagName("Cust-Account-Full");
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.