Increment numbers in XML files

My code is
public class Main
    private static File fileTmp;
    private static BufferedReader br;
    private static BufferedWriter bw;
    private static String line;
    /** Creates a new instance of Main */
    public Main()
    public static void main(String args[])
        File xmlFile = new File(args[0]);
        File parentPath=new File(xmlFile.getParent(),"files");
        File [] files = parentPath.listFiles();
        for(int i=0;i<files.length;i++)
            File f = new File(files.getAbsolutePath());               
if(!(f.isDirectory()))
try
fileTmp = File.createTempFile(f.getName(), "tmp");           
br = new BufferedReader(new FileReader(f));
bw = new BufferedWriter(new FileWriter(fileTmp));
while((line = br.readLine()) != null)
if(line.contains("<citation citation-type=\"book\" id=\"\">"))
line = FunctionToIncrement(line);
bw.write(line);
bw.newLine();
catch(NullPointerException n)
n.printStackTrace();
catch(IOException ioe)
System.out.println("IOException.."+ioe.getMessage());
finally
try
br.close();
catch(Exception e)
try
bw.close();
catch(Exception e)
if(f.delete())
fileTmp.renameTo(f);
private static String FunctionToIncrement(String line)
String res = "";
int num=1;
     res = line.replace("<citation citation-type=\"book\" id=\"\">","<citation citation-type=\"book\" id=\""+num+"\">");          
System.out.println("res:"+res);
num++;
return res;
Input XML files are
XML file 1
<citation citation-type="book" id="">
<citation citation-type="book" id="">
<citation citation-type="book" id="">
<citation citation-type="book" id="">
XML file 2
<citation citation-type="book" id="">
<citation citation-type="book" id="">
XML file 3
<citation citation-type="book" id="">
From the code my Output XML files contain
XML file 1
<citation citation-type="book" id="1">
<citation citation-type="book" id="1">
<citation citation-type="book" id="1">
<citation citation-type="book" id="1">
XML file 2
<citation citation-type="book" id="1">
<citation citation-type="book" id="1">
XML file 3
<citation citation-type="book" id="1">
But Ouput XML files should contain incremented numbers as
XML file 1
<citation citation-type="book" id="1">
<citation citation-type="book" id="2">
<citation citation-type="book" id="3">
<citation citation-type="book" id="4">
XML file 2
<citation citation-type="book" id="1">
<citation citation-type="book" id="2">
XML file 3
<citation citation-type="book" id="3">Could anyone please help me to update my code.

int cntr=1;   // everytime the for loops goes around, we create cntr = 1
fileTmp = File.createTempFile(f.getName(), "tmp");                          
br = new BufferedReader(new FileReader(f));
bw = new BufferedWriter(new FileWriter(fileTmp));
while((line = br.readLine()) != null)
  if(line.contains("><citation citation-type=\"book\" id=\"\">"))
       line = FunctionToIncrement(line, cntr);
       cntr++;
  bw.write(line);
  bw.newLine();
private static String FunctionToIncrement(String line, int cntr)
        String res = "";
     res = line.replace("<citation citation-type=\"book\" id=\"\">","<citation citation-type=\"book\" id=\""+cntr+"\">");          
        System.out.println("res:"+res);
        return res;
} Or simply make cntr variable global to the class.
Another way to think about it this:
Your approach is fine because you are doing the increments and writing on the fly. If your XML was bigger, it wouldn't be all that great.
Count the number of instances that line occurs (DOM or SAX). Then you already know how much you need to increment. You can then write a function to take that node tree and run it in a loop to do the increment. This way there would be no need for a global counter variable, or passing a counter in.

Similar Messages

  • Floating point numbers into XML file

    Hi,
    I am a learner in Labview and I am using Labview 8.5 version.
    when I use FlattentoXML component to convert floating point numbers ( having more than 5 decimal points) into XML, the output contains alway 5 decimal points.
    But, I want exact decimal number to be displayed as XML. i.e 0.263746 should not be displayed as 0.26375 in XML.
    Do you have any suggestions ?
    Attachments:
    Float_to_XML.vi ‏7 KB

    I tested it and could not see your problem in Labview 2009. So it is perhaps a bug in your Labview version. You can use this VI as a workaround.
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)
    Attachments:
    Float_to_XML[2].vi ‏8 KB

  • Is there any way to upload Tariff Code (with multiple XML files) from application server?

    Hi All,
    Is there any way to upload Tariff Code (with multiple XML files) from application server?. Its urgent.
    Regards,
    Jatin

    Hi Jatin,
    Yes, of course you can upload multiple files for tariff codes.
    This can be done by the below path:-
    SAP GTS Cockpit(tcode-/sapsll/menu_legal)-->Customs Management-->Classification-->Classification Master Data-->Upload Tariff Code Numbers from XML file(tocde- /SAPSLL/LLNS_UPL101).
    In the above area after browsing and choosing the first file, please select multiple check box to choose more files as well. Then you can further select your application server and upload all those files in one go.
    PS:- Although, we have an option to upload multiple such files but actually we should avoid multiple file uploads due to various reasons. Hence, please take utmost care during such procedure.
    Regards,
    Aman

  • Numbers 09 not working - I can open the program but only a few files are available, missing blank, checklist and many others. e.g  when I click on a file I get this error: The document "nmbtemplate is invalid. The index.xml file is missing. help.

    Please let me know what I can do to get my Numbers (iWork 09) working properly again.
    Here is what is going on:
    Numbers in iWork 09 not working can't access Blank, Checklist and many other files within Numbers.   I can open the program but only a few files are available. When I click on the file (which also has no icon just the name of the file) this warning appears:
    The document "Blank.nmbtemplate" is invalid.  The index.xml file is missing.
    I recently had to get a new hard drive installed and had the system upgraded and more memory put in by a Mac certified specialist recommended to me from the Apple store in Northbrook because this was the 3rd time my drive went bad but this time it was to old (I got the IMAC- in 2007) and the Apple store could no longer work on it this time so they recommended a few places that had certified Mac specialists.  Since then Numbers is not working right.
    I'm sure it's something simple to fix, but I've tried re installing it and that didn't work.  Appreciate any help.
    Thanks
    AppMare

    There is one way its getting fixed. Once I update my Adobe Illustrator CC to Adobe Illustrator CC 2014 it is further allowing me to go into the system folder and allocate the font to the file so that it can replace it. My only concern now is that our MAC partners who will receive these files back from us have Adobe CS6. We will down save it to CS6 but I hope they won't experience any font issues because of us using CC 2014? Any light you can shed on this?

  • Hello; I am using Numbers '09 version 2.1 (436). I tried unsuccessfully to upgrade at one point. Now can't open existing documents. Message "The index.xml file is missing".

    Hello; I am using Numbers '09 version 2.1 (436). I tried unsuccessfully to upgrade at one point. Now can't open existing documents. Message "The index.xml file is missing". How can I correct this ?
    Thank you
    Tom

    I't not iWeb that got damaged but the domain file. The index.xml file is inside the domain.sites file that's located in your Users/Home/Library/Application Support/iWeb folder. Do you have a backup of that file you can revert to?  If so then do it.  Otherwise a long shot but try the following:
    close iWeb.
    delete the iWeb preference file, com.apple.iWeb.plist, that resides in your Home/Library/Preferences folder.
    go to your Home/Library/Caches/com.apple.iWeb folder and delete its contents.
    launch iWeb and try again.
    If that doesn't help continue with:
    move the domain file from your Home/Library/Application Support/iWeb folder to the Desktop.
    launch iWeb, create a new test site, save the new domain file and close iWeb.
    go to the your Home/Library/Application Support/iWeb folder and delete the new domain file.
    move your original domain file from the Desktop to the iWeb folder.
    launch iWeb and try again.
    OT

  • I have been working on the same numbers file for the past few weeks.  The last time I opened it was 1 week ago.  Today when I tried to open it I am unable and getting a message that the file is invalid and the index.xml file is missing.

    I have been working on the same numbers file for the past few weeks.  The last time I opened it was 1 week ago.  Today when I tried to open it I am unable and getting a message that the file is invalid and the index.xml file is missing. 

    Hi Tracie,
    I upgraded to Maverick OS X 10.9.5, numbers spreadsheet is saved. Upon re-opening, it appears to be frozen, a warning "file is invalid as index.xml file is missing". I checked, and the file is not "locked". This appears to occur only with using the new numbers app. When I open previous spreadsheets from old iWorks, no such problem occurs.
    How did you resolve your problem?
    Would appreciate any help here.
    Thanks,
    Deehay

  • Opening xml files in numbers

    how do i open an .XML file in numbers

    Hi jogrami,
    IF Numbers is capable of opening the file, you should be able to drag and drop its icon onto the Numbers icon in the Dock, or right click on the file icon and choose Open with > Numbers.
    Regards,
    Barry

  • XML file missing in numbers 08

    I have recently had to perform an erase and reinstall of snow leopard. On trying to get everything that was working fine before I find that I am now unable to open my numbers documents, this in spite of the fact that I wrote them in numbers 08 and have not updated to numbers 09 since reinstalling snow leopard. What's going on, do I really have to spend £80 just to open existing files with a programme that I already own?

    Your message isn't really clear.
    The title tell "XML file missing in numbers '08".
    Then you write that you are now unable to open your numbers documents.
    At last, you wrote that you have not updated to mumbers 09 since reinstalling snow leopard.
    Must I understand that you used numbers 09 before reinstalling snow leopard ?
    *If you did, the behaviour may be normal.*
    When you opened a numbers '08 document with numbers '09,
    *if you saved them* they where changed in Numbers '09 documents which can't be opened by numbrs 08.
    The soluce would be to install the iwork '09 trial version,
    open your documents with it then
    Use 'Save As" which gives you the ability to save them as numbers '08 files.
    Yvan KOENIG (VALLAURIS, France) dimanche 28 mars 2010 22:23:22

  • Can't open numbers documents, says index.xml file is missing?

    can't open numbers documents, says index.xml file is missing

    I came across this problem after upgrading to Mavericks.  Here's what I did to solve the problem:
    Issue:  I began working on an existing spreadsheet.  After I saved it and tried to pull it up again later, I got the message "index.xml file is missing...".
    Go to your dock and delete the icon for Numbers (mine still referred to the previous version of Numbers). 
    Go to Applications and drag the Numbers icon to the dock.  This icon now links to the new version of Numbers and  (hopefully)  your spreadsheet should work.

  • How do you retrieve a file in numbers that keeps coming up with index.xml file

    I'm not able to retrieve spreadsheet I've done in Numbers..the prompt index.xml file is missing keeps popping up.  Please help.  This is information I've been inputting for a couple of years now.  I need it.
    Thank you,
    Sandy

    Hi Sandy,
    This reply from Fruhulda may help you. It refers to Pages, but the same methods should work in Numbers. Read the whole thread.
    Re: The required index.xml file is missing.
    Let me know if it works.
    Regards,
    Ian

  • Why are all virtual host files named "0000_" instead of incrementing numbers?

    I've created several virtual hosts using Lion Server's Server app.  Each .conf file that is created is prefixed with 0000_.  On SL Server, each vhost file was incrementally numbered, like 0001_, 0002_, etc.
    Is this a bug?  Or by design? 

    That can be caused by a problem with the HTTP response headers.
    Did it work before with a Firefox 8 version?
    Maybe something similar as this problem with Outlook Web Access:
    *[[/questions/894442]] OWA 2010/Firefox 8 and ASHX Attachments
    *[[/questions/895024]]

  • Insert numbers starting with one in each xml files sequentially

    The following is a sample of two of my xml files
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article SYSTEM "abc.dtd">
    <article xyz>
    <front>
    <product>
    <citation citation-type="book" id="">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="">
    </citation>
    </product>
    </front>
    </article>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article SYSTEM "abc.dtd">
    <article xyz>
    <front>
    <product>
    <citation citation-type="book" id="">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="">
    </citation>
    </product>
    </front>
    </article>
    This is my source code
    public class ReadTexFile
         public void Go2Directory(String Directory)
                    File scan = new File(Directory);
              String DirList[] = scan.list();
              try
                   for(int i = 0; i < DirList.length; i++)
                        File ChkDir = new File((new StringBuilder()).append(scan.getPath()).append("\\").append(DirList).toString());
                        if(ChkDir.isFile())
                             dum1 = ChkDir.toString().toUpperCase();
                             if(dum1.lastIndexOf(".XML") > 0)
    String ExecFile = ChkDir.toString();
                                  File TexfileName = new File(ExecFile);
                                  ReadFileContent(TexfileName);
                                  fileCount++;
                             if(!ChkDir.exists())
                                  System.out.println((new StringBuilder()).append("NO FILES FOUND IN THE DIRECTORY").append(scan).toString());
              catch(Exception e)
                   System.out.println((new StringBuilder()).append("The Error Is in ").append(e).toString());
         public void ReadFileContent(File TexFile)
    try
                   BufferedReader br = new BufferedReader(new FileReader(TexFile));
                   String fetchline = "";
                   for(String line = ""; (line = br.readLine()) != null;)
                        fetchline = (new StringBuilder()).append(fetchline).append(line).append("00000000").toString();
                   br.close();
    cntr=1;
                   fetchline = RemoveIfAlreadyExist(fetchline);
                   fetchline = fetchline.replace("00000000", "\n");
                   File tmp = new File(TexFile.getParent(), "XmlFileTmp.xml");
                   BufferedWriter bw = new BufferedWriter(new FileWriter(tmp));
                   bw.write(fetchline);
                   bw.flush();
                   bw.close();
                   File org = new File(TexFile.getAbsolutePath());
                   System.gc();
                   tmp.renameTo(org);
              catch(IOException ioe)
                   System.out.println((new StringBuilder()).append("The IO Exception occured because ").append(ioe.getMessage()).toString());
              catch(NullPointerException npe)
                   System.out.println((new StringBuilder()).append("The Null Pointer Exception occured because ").append(npe.getMessage()).toString());
         public String RemoveIfAlreadyExist(String line)
    String res = "";
    int cc=1;
              Pattern Regex = Pattern.compile("<product>00000000<citation citation-type=\".*?\" id=\"\">");
              for(Matcher RegexMatcher = Regex.matcher(line); RegexMatcher.find();)
                   String chkEntity = RegexMatcher.group();
                   String subchkEntity1=chkEntity.substring(0,chkEntity.lastIndexOf("\">"));
                   String s1 = Integer.toString(cc);
                   if(s1.length()==1)
                        res = line.replace(subchkEntity1,subchkEntity1+"ref00"+cc+"");
                   if(s1.length()==2)
                        res = line.replace(subchkEntity1,subchkEntity1+"ref0"+cc+"");
                   if(s1.length()==3)
                        res = line.replace(subchkEntity1,subchkEntity1+"ref"+cc+"");
    cc++;
              return res;
    My output from my code is
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article SYSTEM "abc.dtd">
    <article xyz>
    <front>
    <product>
    <citation citation-type="book" id="ref002">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref002">
    </citation>
    </product>
    </front>
    </article>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article SYSTEM "abc.dtd">
    <article xyz>
    <front>
    <product>
    <citation citation-type="book" id="ref004">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref004">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref004">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref004">
    </citation>
    </product>
    </front>
    </article>
    But I need my output as
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article SYSTEM "abc.dtd">
    <article xyz>
    <front>
    <product>
    <citation citation-type="book" id="ref001">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref002">
    </citation>
    </product>
    </front>
    </article>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE article SYSTEM "abc.dtd">
    <article xyz>
    <front>
    <product>
    <citation citation-type="book" id="ref001">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref002">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref003">
    </citation>
    </product>
    <product>
    <citation citation-type="book" id="ref004">
    </citation>
    </product>
    </front>
    </article>Could anyone please tell me what modifications to do in my code.

    Hi sony,
    Since you are trying to replace the pattern of subchkEntity1,
    it replaces all the lines which contain ("<citation citation-type="book" id=")
    including(...id="refxxx...)
    & not ("<citation citation-type="book" id="") alone.
    So ,to eliminate this, we have to match the string with chkEntity &
    replace only the first occurance.
    I've modified the method RemoveIfAlreadyExist.
    It works fine now.
    public String RemoveIfAlreadyExist(String line)
             int cc=1;
              Pattern Regex = Pattern.compile("<product>00000000<citation citation-type=\".*?\" id=\"\">");
              for(Matcher RegexMatcher = Regex.matcher(line); RegexMatcher.find();)
                   String chkEntity = RegexMatcher.group();
                   int lastIndex = chkEntity.lastIndexOf("\">");
                   String subchkEntity1=chkEntity.substring(0,lastIndex);
                   String s1 = Integer.toString(cc);
                   if(s1.length()==1)
                        line = line.replaceFirst(chkEntity,subchkEntity1+"ref00"+cc+"\"");
                   if(s1.length()==2)
                        line = line.replaceFirst(chkEntity,subchkEntity1+"ref00"+cc+"\"");
                   if(s1.length()==3)
                        line = line.replaceFirst(chkEntity,subchkEntity1+"ref00"+cc+"\"");
                            cc++;
              return line;
         }

  • Increment values within XML document and generate new file

    Good day Gurus of the Java World,
    I have a XML file and would like to generate a 100 unique files of this one file.
    The tags that need to be unique are UniqueID (alpha numeric field), TranAmount (numeric filed) and RefNumber (alpha numeric field).
    The rest of the tags can remain as is.
    How do I go about doing this? Please assist.
    <Payment>
    <UniqueID>48a6bd92-19c8-11e2-a2ba-000000000000</UniqueID>
    <EffectiveDate>20121018</EffectiveDate>
    <TranCode>1000</TranCode>
    <TranAmount>000000000123456</TranAmount>
    <TranDate>20121018</TranDate>
    <TranTime>014532</TranTime>
    <Check></Check>
    <DrCrInd>CR</DrCrInd>
    <Name>ABC</Name>
    <BrCode>1234</BrCode>
    <RefNumber>SALARYWAGE</RefNumber>
    <AccNumber>123456789</AccNumber>
    <BackoutCount>0</BackoutCount>
    </Payment>

    1. Parse the document into a DOM.
    2. Modify the nodes which you said you wanted modified.
    3. Serialize the DOM to a new document.
    4. Repeat steps 2 and 3 as required.

  • Why are all of my files that I open in numbers tell me that I am missing a index.xml file.

    This last weekend I was able to edit and work with Number files with no problem. Now all of my files that are something.number come up with an error message The index.xml file is missing.  Now just before submitting this If I open the app and map to the file that I want to open it opens about 50% of the time. But clicking on the file directly gives me the error message below.
    I have tried the trick of zipping them and unzipping them but that did not work.
    What is going on? And how I do I fix this?  Any and all help is appreciated.

    You can set the pref <b>browser.urlbar.formatting.enabled</b> to <i>false</i> on the <b>about:config</b> page to disable the highlighting of the domain and see the full URL more clearly.
    You can set the pref <b>browser.urlbar.trimURLs</b> to <i>false</i> on the <b>about:config</b> page to see the http: protocol.
    *http://kb.mozillazine.org/about:config

  • Issue in reading the XML file

    Hi Gurus,
    I am dier need of one of the xml issue which I am facing right now.
    I am reading one of the xml file which is like this
    <?xml version="1.0" encoding="UTF-8" ?>
    - <GEBIZ_ORDER xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    - <HEADER>
      <MINISTRY_CODE>RPO</MINISTRY_CODE>
      <DEPARTMENT_CODE>000</DEPARTMENT_CODE>
      <ORDER_CODE>RPO000EPO11000953</ORDER_CODE>
      <EXTERNAL_SYSTEM_CODE>E</EXTERNAL_SYSTEM_CODE>
      <AMENDMENT_NUMBER>0</AMENDMENT_NUMBER>
      <VARIATION_NUMBER>0</VARIATION_NUMBER>
      <DESCRIPTION>Purchase Order for Air tickets for SOT to Korea (from 17th - 26th Sep 2011) off PC(RPO000ECN11000100)for SAS</DESCRIPTION>
      <STATUS>NEW</STATUS>
      <STATUS_DATE>2011-07-08T16:57:39</STATUS_DATE>
      <PAYMENT_TERMS xsi:nil="true" />
      <BILL_TO>One-Stop Centre, 9 Woodlands Avenue 9, S(738964)</BILL_TO>
      <JUSTIFICATION>Please refer to attached approval email.</JUSTIFICATION>
      <CREATE_TIMESTAMP>2011-07-08T16:57:39</CREATE_TIMESTAMP>
      <TERMINATE_REASON xsi:nil="true" />
      <TERMINATE_TIMESTAMP xsi:nil="true" />
      <ORDER_TYPE>1</ORDER_TYPE>
    - <FINANCIAL_SYSTEM>
      <SUB_BUSINESS_UNIT>RPS01</SUB_BUSINESS_UNIT>
      </FINANCIAL_SYSTEM>
    - <SUPPLIER>
      <CODE>200003048E</CODE>
      <NAME>Safe2Travel Pte Ltd</NAME>
      <GST_NUMBER>20-0003048-E</GST_NUMBER>
      <CONTACT_NAME>ONG PEI LENG</CONTACT_NAME>
      <CONTACT_PHONE>68233103</CONTACT_PHONE>
      <CONTACT_EMAIL>[email protected]</CONTACT_EMAIL>
      <CONTACT_FAX>68221636</CONTACT_FAX>
    - <SITES>
    - <SITE>
      <ID>1</ID>
      <NAME>ravel Pte Ltd</NAME>
      <PHONE>68233013</PHONE>
      <PHONE_EXTENSION xsi:nil="true" />
      <FAX>68221636</FAX>
      <EMAIL>[email protected]</EMAIL>
      <ADDRESS_LINE1>10 Eunos Road 8</ADDRESS_LINE1>
      <ADDRESS_LINE2>#08-03 (North Lobby)</ADDRESS_LINE2>
      <ADDRESS_LINE3>Singapore Post Centre</ADDRESS_LINE3>
      <COUNTRY_CODE>SG</COUNTRY_CODE>
      <PROVINCE xsi:nil="true" />
      <STATE xsi:nil="true" />
      <CITY xsi:nil="true" />
      <AREA_CODE xsi:nil="true" />
      <ZIP>408600</ZIP>
      <REGION_CODE xsi:nil="true" />
      </SITE>
    - <SITE>
      <ID>2</ID>
      <NAME>ravel Pte Ltd</NAME>
      <PHONE>62208866</PHONE>
      <PHONE_EXTENSION xsi:nil="true" />
      <FAX>62265578</FAX>
      <EMAIL>[email protected]</EMAIL>
      <ADDRESS_LINE1>3 Lim Teck Kim Road</ADDRESS_LINE1>
      <ADDRESS_LINE2>#02-02</ADDRESS_LINE2>
      <ADDRESS_LINE3>Singapore Technologies Building</ADDRESS_LINE3>
      <COUNTRY_CODE>SG</COUNTRY_CODE>
      <PROVINCE xsi:nil="true" />
      <STATE xsi:nil="true" />
      <CITY xsi:nil="true" />
      <AREA_CODE xsi:nil="true" />
      <ZIP>088934</ZIP>
      <REGION_CODE xsi:nil="true" />
      </SITE>
    - <SITE>
      <ID>3</ID>
      <NAME>Safe2Travel Pte Ltd</NAME>
      <PHONE>62208866</PHONE>
      <PHONE_EXTENSION xsi:nil="true" />
      <FAX>62265578</FAX>
      <EMAIL>[email protected]</EMAIL>
      <ADDRESS_LINE1>3 Lim Teck Kim Road</ADDRESS_LINE1>
      <ADDRESS_LINE2>#02-02</ADDRESS_LINE2>
      <ADDRESS_LINE3>Singapore Technologies Building</ADDRESS_LINE3>
      <COUNTRY_CODE>SG</COUNTRY_CODE>
      <PROVINCE xsi:nil="true" />
      <STATE xsi:nil="true" />
      <CITY xsi:nil="true" />
      <AREA_CODE xsi:nil="true" />
      <ZIP>088934</ZIP>
      <REGION_CODE xsi:nil="true" />
      </SITE>
      </SITES>
      </SUPPLIER>
    - <USER>
      <CODE>JOYCE SOON</CODE>
      <NAME>JOYCE SOON</NAME>
      <ORGANISATION_NAME>Republic Polytechnic</ORGANISATION_NAME>
      </USER>
    - <FUND_COMMIT_AMOUNT>
      <CURRENCY_CODE>SGD</CURRENCY_CODE>
      <CURRENCY_RATE>1</CURRENCY_RATE>
      <CURRENCY_RATE_DATE>1900-01-01T00:00:00</CURRENCY_RATE_DATE>
      <CURRENCY_RATE_TYPE>BOOK</CURRENCY_RATE_TYPE>
      <CURRENCY_AMOUNT>21551.4</CURRENCY_AMOUNT>
      </FUND_COMMIT_AMOUNT>
    - <PERIOD_CONTRACT>
      <CODE>RPO000ECN11000100</CODE>
      <AGENCY_CODE>RPO000</AGENCY_CODE>
      <ADMIN_FEE_SGD_AMOUNT>0</ADMIN_FEE_SGD_AMOUNT>
      </PERIOD_CONTRACT>
    - <BUYER>
      <ORGANISATION_CODE>1</ORGANISATION_CODE>
      <ORGANISATION_NAME>Republic Polytechnic</ORGANISATION_NAME>
      <NAME>Sally Ang</NAME>
      <PHONE>31001711</PHONE>
      <FAX>64151310</FAX>
      <EMAIL>[email protected]</EMAIL>
      </BUYER>
      <APPROVING_OFFICERS />
      </HEADER>
    - <ITEMS>
    - <ITEM>
      <LINE_NUMBER>1</LINE_NUMBER>
      <STATUS>NEW</STATUS>
      <STATUS_DATE>2011-07-08T16:57:39</STATUS_DATE>
      <DESCRIPTION>Return Air Ticket including Airport Taxes and Fuel Surcharges (2 staff and 24 students)</DESCRIPTION>
      <UNIT_OF_MEASURE>PAX</UNIT_OF_MEASURE>
      <QUANTITY>26</QUANTITY>
      <LINE_TYPE>SERVICES</LINE_TYPE>
      <UNIT_PRICE>828.9</UNIT_PRICE>
      <PRICE_UNIT>1</PRICE_UNIT>
      <TOTAL_AMOUNT>21551.4</TOTAL_AMOUNT>
      <MATERIAL_MASTER_CODE xsi:nil="true" />
      <MATERIAL_GROUP_CODE xsi:nil="true" />
      <PLANT_CODE xsi:nil="true" />
      <ITEM_CATEGORY_CODE xsi:nil="true" />
      <ADMIN_FEE_SGD_AMOUNT>0</ADMIN_FEE_SGD_AMOUNT>
      <INSTRUCTION_TO_SUPPLIER>Purchase of goods/services is subject to the Terms & Conditions found in www.rp.sg/purchase and/or in the ITQ/ITT Specifications. Please liaise with the Contact Person for delivery details. Invoice MUST be addressed to the Contact Person. PO number MUST be included in the Description field under e-Invoice Details section at Vendor@Gov.</INSTRUCTION_TO_SUPPLIER>
      <PERIOD_CONTRACT_LINE_NUMBER>1</PERIOD_CONTRACT_LINE_NUMBER>
      <GOODS_INSPECT_FLAG>N</GOODS_INSPECT_FLAG>
    - <PURCHASE_REQUEST>
      <CODE>RPO000EPR11000465</CODE>
      <LINE_NUMBER>1</LINE_NUMBER>
      </PURCHASE_REQUEST>
    - <PART_NUMBER_INFORMATION>
      <NATO_STOCK_NUMBER xsi:nil="true" />
      <MANUFACTURER_PART_NUMBER xsi:nil="true" />
      <PART_NUMBER xsi:nil="true" />
      <CAGE_CODE xsi:nil="true" />
      <CAGE_NAME xsi:nil="true" />
      <ITEM_CONDITION xsi:nil="true" />
      <MINIMUM_SHELF_LIFE xsi:nil="true" />
      <SHELF_LIFE_REMAINING xsi:nil="true" />
      <CERTIFICATE_OF_CONFORMANCE xsi:nil="true" />
      <EXPORT_LICENSE xsi:nil="true" />
      </PART_NUMBER_INFORMATION>
    - <LOCATIONS>
    - <LOCATION>
      <LINE_NUMBER>1</LINE_NUMBER>
      <STATUS>NEW</STATUS>
      <STATUS_DATE>2011-07-08T16:57:39</STATUS_DATE>
      <QUANTITY>26</QUANTITY>
      <DELIVERY_DESTINATION>Republic Polytechnic, One-Stop Centre, 9 Woodlands Avenue 9, S(738964)</DELIVERY_DESTINATION>
      <DELIVERY_DATE>2011-07-11T00:00:00</DELIVERY_DATE>
      <DELIVERY_TERMS>LOC</DELIVERY_TERMS>
      <PORT_OF_ORIGIN>-</PORT_OF_ORIGIN>
    - <RECIPIENT>
      <CODE>OSC</CODE>
      <NAME>One Stop Centre</NAME>
      <PHONE>65103000</PHONE>
      <EMAIL>[email protected]</EMAIL>
      </RECIPIENT>
    - <DISTRIBUTIONS>
    - <DISTRIBUTION>
      <LINE_NUMBER>1</LINE_NUMBER>
      <STATUS>NEW</STATUS>
      <STATUS_DATE>2011-07-08T16:57:39</STATUS_DATE>
      <QUANTITY>26</QUANTITY>
      <CHART_OF_ACCOUNT>1/G01/3SAS/020/220908/0000/0000/0000</CHART_OF_ACCOUNT>
      <PROJECT_DISTRIBUTION xsi:nil="true" />
      </DISTRIBUTION>
      </DISTRIBUTIONS>
      </LOCATION>
      </LOCATIONS>
      </ITEM>
      </ITEMS>
      </GEBIZ_ORDER>I was able to read this kind of file structure but due to some constraints now they added supplier sites and increment that one which will be like variable kind of thing now.
    And below mentioned is the script which I am using right now for reading that xml file
    PROCEDURE XGBZPROD.XGBZ_PUR_ORD_XMLTAG_PROC(P_XML_FILE IN VARCHAR2, P_FOLDER_NAME IN VARCHAR2)
    IS
      lv_supp_file     XMLTYPE;
      lv_hdr_error     VARCHAR2(240);
      lv_line_error    VARCHAR2(240);
      lv_line_loc_err  VARCHAR2(240);
      lv_dist_err      VARCHAR2(240);
      l_file_name      VARCHAR2(300);
      l_folder_name    VARCHAR2(300);
      lv_sysdate       DATE := sysdate;
    BEGIN
      l_file_name     := p_xml_file;
      l_folder_name   := p_folder_name;
      -- this clause to check whether is xml file or NODATA FILE.
      IF upper(substr(l_file_name,instr(l_file_name,'.',1)+1,3)) ='XML' THEN
        lv_supp_file  := xmltype( bfilename('XMLDIR',P_XML_FILE), nls_charset_id('AL32UTF8'));
        dbms_output.put_line('P_XML_FILE '||P_XML_FILE);
    -- Initially insert data into 11g table
    -- This is to read xml datafile
      INSERT INTO XGBZ_PO_XML_DETAILS
       (ministry_code                ,
        department_code              ,
        order_code                   ,
        external_system_code         ,
        amendment_number             ,
        variation_number             ,
        description                  ,
        status                       ,
        status_date                  ,
        payment_terms                ,
        bill_to                      ,
        justification                ,
        create_timestamp             ,
        terminate_reason             ,
        terminate_timestamp          ,
        order_type                   ,
        sub_business_unit            ,
        cost_center_group            ,
        buyer_code                   ,
        financial_system_order_code  ,
        user_nric                    ,
        supplier_code                ,
        supplier_name                ,
        gst_number                   ,
        contact_name                 ,
        contact_phone                ,
        contact_email                ,
        contact_fax                  ,
        supp_site_id                 ,
        supp_site_name               ,
        supp_site_phone              ,
        supp_sit_phone_ext           ,
        supp_site_fax                ,
        supp_site_email              ,
        supp_site_add_line1          ,
        supp_site_add_line2          ,
        supp_site_add_line3          ,
        supp_site_country_code       ,
        supp_site_province           ,
        supp_site_state              ,
        supp_site_city               ,
        supp_site_area_code          ,
        supp_site_zip                ,
        supp_site_region_code        ,
        user_code                    ,
        user_name                    ,
        user_org_name                ,
        currency_code                ,
        currency_rate                ,
        currency_rate_date           ,
        currency_rate_type           ,
        currency_amount              ,
        tx_field_2                   ,
        agency_code                  ,
        admin_fee_sgd                ,
        buyer_orgn_code              ,
        buyer_orgn_name              ,
        buyer_name                   ,
        buyer_phone                  ,
        buyer_fax                    ,
        buyer_email                  ,
        ao_code                      ,
        ao_name                      ,
        line_no                      ,
        line_status                  ,
        line_status_date             ,
        line_description             ,
        unit_of_measure              ,
        line_qty                     ,
        line_type                    ,
        unit_price                   ,
        line_total_amount            ,
        material_master_code         ,
        material_group_code          ,
        item_category_code           ,
        line_admin_fee_sgd_amt       ,
        instruction_supplier         ,
        period_contract_line_no      ,
        goods_inspect_flag           ,
        pr_code                      ,
        pr_line_number               ,
        nato_stock_number            ,
        manufacturer_part_no         ,
        part_number                  ,
        cage_code                    ,
        cage_name                    ,
        item_condition               ,
        minimum_shelf_life           ,
        shelf_life_remaining         ,
        cert_of_conformance          ,
        export_license               ,
        line_location_no             ,
        line_loc_status              ,
        line_loc_status_date         ,
        line_loc_qty                 ,
        delivery_destination         ,
        delivery_date                ,
        delivery_terms               ,
        port_of_origin               ,
        recipient_code               ,
        recipient_name               ,
        recipient_phone              ,
        recipient_email              ,
        dist_line_no                 ,
        dist_line_status             ,
        dist_line_status_date        ,
        dist_line_qty                ,
        chart_of_account             ,
        project_distribution
       SELECT --Header Data
              ministry_code                ,
              department_code              ,
              order_code                   ,
              external_system_code         ,
              amendment_number             ,
              variation_number             ,
              description                  ,
              status                       ,
              status_date                  ,
              payment_terms                ,
              bill_to                      ,
              justification                ,
              create_timestamp             ,
              terminate_reason             ,
              terminate_timestamp          ,
              order_type                   ,
              sub_business_unit            ,
              cost_center_group            ,
              buyer_code                   ,
              financial_system_order_code  ,
              user_nric                    ,
              supplier_code                ,
              supplier_name                ,
              gst_number                   ,
              contact_name                 ,
              contact_phone                ,
              contact_email                ,
              contact_fax                  ,
              supp_site_id                 ,
              supp_site_name               ,
              supp_site_phone              ,
              supp_sit_phone_ext           ,
              supp_site_fax                ,
              supp_site_email              ,
              supp_site_add_line1          ,
              supp_site_add_line2          ,
              supp_site_add_line3          ,
              supp_site_country_code       ,
              supp_site_province           ,
              supp_site_state              ,
              supp_site_city               ,
              supp_site_area_code          ,
              supp_site_zip                ,
              supp_site_region_code        ,
              user_code                    ,
              user_name                    ,
              user_org_name                ,
              currency_code                ,
              currency_rate                ,
              currency_rate_date           ,
              currency_rate_type           ,
              currency_amount              ,
              tx_field_2                   ,
              agency_code                  ,
              admin_fee_sgd                ,
              buyer_orgn_code              ,
              buyer_orgn_name              ,
              buyer_name                   ,
              buyer_phone                  ,
              buyer_fax                    ,
              buyer_email                  ,
              ao_code                      ,
              ao_name                      ,
              line_no                      ,
              line_status                  ,
              line_status_date             ,
              line_description             ,
              unit_of_measure              ,
              line_qty                     ,
              line_type                    ,
              unit_price                   ,
              line_total_amount            ,
              material_master_code         ,
              material_group_code          ,
              item_category_code           ,
              line_admin_fee_sgd_amt       ,
              instruction_supplier         ,
              period_contract_line_no      ,
              goods_inspect_flag           ,
              pr_code                      ,
              pr_line_number               ,
              nato_stock_number            ,
              manufacturer_part_no         ,
              part_number                  ,
              cage_code                    ,
              cage_name                    ,
              item_condition               ,
              minimum_shelf_life           ,
              shelf_life_remaining         ,
              cert_of_conformance          ,
              export_license               ,
              line_location_no             ,
              line_loc_status              ,
              line_loc_status_date         ,
              line_loc_qty                 ,
              delivery_destination         ,
              delivery_date                ,
              delivery_terms               ,
              port_of_origin               ,
              recipient_code               ,
              recipient_name               ,
              recipient_phone              ,
              recipient_email              ,
              dist_line_no                 ,
              dist_line_status             ,
              dist_line_status_date        ,
              dist_line_qty                ,
              chart_of_account             ,
              project_distribution
         FROM XMLTable('/GEBIZ_ORDER'
              passing lv_supp_file
              columns
              ministry_code                      VARCHAR2(3)    path    'HEADER/MINISTRY_CODE',
              department_code                    VARCHAR2(3)    path    'HEADER/DEPARTMENT_CODE',
              order_code                         VARCHAR2(17 )  path    'HEADER/ORDER_CODE',
              external_system_code               VARCHAR2(1)    path    'HEADER/EXTERNAL_SYSTEM_CODE',
              amendment_number                   VARCHAR2(5)    path    'HEADER/AMENDMENT_NUMBER' ,
              variation_number                   VARCHAR2(5)    path    'HEADER/VARIATION_NUMBER',
              description                        VARCHAR2(500)  path    'HEADER/DESCRIPTION',
              status                             VARCHAR2(500)  path    'HEADER/STATUS',
              status_date                        VARCHAR2(24)   path    'HEADER/STATUS_DATE',
              payment_terms                      VARCHAR2(400)  path    'HEADER/PAYMENT_TERMS',
              bill_to                            VARCHAR2(200)  path    'HEADER/BILL_TO',
              justification                      VARCHAR2(400)  path    'HEADER/JUSTIFICATION',
              create_timestamp                   VARCHAR2(24)   path    'HEADER/CREATE_TIMESTAMP',
              terminate_reason                   VARCHAR2(400)  path    'HEADER/TERMINATE_REASON',
              terminate_timestamp                VARCHAR2(24)   path    'HEADER/TERMINATE_TIMESTAMP',
              order_type                         VARCHAR2(2 )   path    'HEADER/ORDER_TYPE',
              sub_business_unit                  VARCHAR2(5 )   path    'HEADER/FINANCIAL_SYSTEM/SUB_BUSINESS_UNIT',
              cost_center_group                  VARCHAR2(20 )  path    'HEADER/FINANCIAL_SYSTEM/NFS/COST_CENTER_GROUP',
              buyer_code                         VARCHAR2(30 )  path    'HEADER/FINANCIAL_SYSTEM/NFS/BUYER_CODE',
              financial_system_order_code        VARCHAR2(20 )  path    'HEADER/FINANCIAL_SYSTEM/NFS/FINANCIAL_SYSTEM_ORDER_CODE',
              user_nric                          VARCHAR2(9 )   path    'HEADER/FINANCIAL_SYSTEM/NFS/USER_NRIC',
              supplier_code                      VARCHAR2(10)   path    'HEADER/SUPPLIER/CODE',
              supplier_name                      VARCHAR2(140)  path    'HEADER/SUPPLIER/NAME' ,
              gst_number                         VARCHAR2(30 )  path    'HEADER/SUPPLIER/GST_NUMBER',
              contact_name                       VARCHAR2(140 ) path    'HEADER/SUPPLIER/CONTACT_NAME',
              contact_phone                      VARCHAR2(23 )  path    'HEADER/SUPPLIER/CONTACT_PHONE',
              contact_email                      VARCHAR2(100)  path    'HEADER/SUPPLIER/CONTACT_EMAIL',
              contact_fax                        VARCHAR2(23 )  path    'HEADER/SUPPLIER/CONTACT_FAX',
              supp_site_id                       NUMBER         path    'HEADER/SUPPLIER/SITES/SITE/ID',
              supp_site_name                     VARCHAR2(140)  path    'HEADER/SUPPLIER/SITES/SITE/NAME',
              supp_site_phone                    VARCHAR2(23)   path    'HEADER/SUPPLIER/SITES/SITE/PHONE',
              supp_sit_phone_ext                 VARCHAR2(4 )   path    'HEADER/SUPPLIER/SITES/SITE/PHONE_EXTENSION',
              supp_site_fax                      VARCHAR2(23 )  path    'HEADER/SUPPLIER/SITES/SITE/FAX',
              supp_site_email                    VARCHAR2(100 ) path    'HEADER/SUPPLIER/SITES/SITE/EMAIL',
              supp_site_add_line1                VARCHAR2(254 ) path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE1',
              supp_site_add_line2                VARCHAR2(35 )  path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE2',
              supp_site_add_line3                VARCHAR2(35 )  path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE3',
              supp_site_country_code             VARCHAR2(2 )   path    'HEADER/SUPPLIER/SITES/SITE/COUNTRY_CODE',
              supp_site_province                 VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/PROVINCE',
              supp_site_state                    VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/STATE',
              supp_site_city                     VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/CITY',
              supp_site_area_code                VARCHAR2(10 )  path    'HEADER/SUPPLIER/SITES/SITE/AREA_CODE',
              supp_site_zip                      VARCHAR2(20 )  path    'HEADER/SUPPLIER/SITES/SITE/ZIP',
              supp_site_region_code              VARCHAR2(3 )   path    'HEADER/SUPPLIER/SITES/SITE/REGION_CODE',
              user_code                          VARCHAR2(16 )  path    'HEADER/USER/CODE',
              user_name                          VARCHAR2(25 )  path    'HEADER/USER/NAME',
              user_org_name                      VARCHAR2(95 )  path    'HEADER/USER/ORGANISATION_NAME',
              currency_code                      VARCHAR2(3 )   path    'HEADER/FUND_COMMIT_AMOUNT/CURRENCY_CODE',
              currency_rate                      NUMBER         path    'HEADER/FUND_COMMIT_AMOUNT/CURRENCY_RATE',
              currency_rate_date                 VARCHAR2(24)   path    'HEADER/FUND_COMMIT_AMOUNT/CURRENCY_RATE_DATE',
              currency_rate_type                 VARCHAR2(5 )   path    'HEADER/FUND_COMMIT_AMOUNT/CURRENCY_RATE_TYPE',
              currency_amount                    NUMBER         path    'HEADER/FUND_COMMIT_AMOUNT/CURRENCY_AMOUNT',
              tx_field_2                         VARCHAR2(17 )  path    'HEADER/PERIOD_CONTRACT/CODE',
              agency_code                        VARCHAR2(6 )   path    'HEADER/PERIOD_CONTRACT/AGENCY_CODE',
              admin_fee_sgd                      NUMBER         path    'HEADER/PERIOD_CONTRACT/ADMIN_FEE_SGD_AMOUNT'  ,
              buyer_orgn_code                    VARCHAR2(5 )   path    'HEADER/BUYER/ORGANISATION_CODE',
              buyer_orgn_name                    VARCHAR2(95 )  path    'HEADER/BUYER/ORGANISATION_NAME',
              buyer_name                         VARCHAR2(80 )  path    'HEADER/BUYER/NAME',
              buyer_phone                        VARCHAR2(23 )  path    'HEADER/BUYER/PHONE',
              buyer_fax                          VARCHAR2(23 )  path    'HEADER/BUYER/FAX',
              buyer_email                        VARCHAR2(100 ) path    'HEADER/BUYER/EMAIL',
              ao_code                            VARCHAR2(16 )  path    'HEADER/APPROVING_OFFICERS/APPROVING_OFFICER/CODE',
              ao_name                            VARCHAR2(40 )  path    'HEADER/APPROVING_OFFICERS/APPROVING_OFFICER/NAME',
              items                              XMLTYPE        path    'ITEMS'
              ) x1,
            XMLTABLE('/ITEMS/ITEM'
            passing x1.items
            columns
              line_no                            VARCHAR2(5)    path    'LINE_NUMBER',
              line_status                        VARCHAR2(15)   path    'STATUS',
              line_status_date                   VARCHAR2(24)   path    'STATUS_DATE',
              line_description                   VARCHAR2(500)  path    'DESCRIPTION',
              unit_of_measure                    VARCHAR2(3)    path    'UNIT_OF_MEASURE',
              line_qty                           NUMBER         path    'QUANTITY',
              line_type                          VARCHAR2(20)   path    'LINE_TYPE',
              unit_price                         NUMBER         path    'UNIT_PRICE',
              line_total_amount                  NUMBER         path    'TOTAL_AMOUNT',
              material_master_code               VARCHAR2(20)   path    'MATERIAL_MASTER_CODE',
              material_group_code                VARCHAR2(10)   path    'MATERIAL_GROUP_CODE',
              item_category_code                 VARCHAR2(18)   path    'ITEM_CATEGORY_CODE',
              line_admin_fee_sgd_amt             NUMBER         path    'ADMIN_FEE_SGD_AMOUNT',
              instruction_supplier               VARCHAR2(400)  path    'INSTRUCTION_TO_SUPPLIER',
              period_contract_line_no            NUMBER         path    'PERIOD_CONTRACT_LINE_NUMBER',
              goods_inspect_flag                 VARCHAR2(1)    path    'GOODS_INSPECT_FLAG',
              pr_code                            VARCHAR2(17)   path    'PURCHASE_REQUEST/CODE',
              pr_line_number                     VARCHAR2(5)    path    'PURCHASE_REQUEST/LINE_NUMBER',
              nato_stock_number                  VARCHAR2(14)   path    'PART_NUMBER_INFORMATION/NATO_STOCK_NUMBER',
              manufacturer_part_no               VARCHAR2(32)   path    'PART_NUMBER_INFORMATION/MANUFACTURE_PART_NUMBER',
              part_number                        VARCHAR2(200)  path    'PART_NUMBER_INFORMATION/PART_NUMBER',
              cage_code                          VARCHAR2(10)   path    'PART_NUMBER_INFORMATION/CAGE_CODE',
              cage_name                          VARCHAR2(140)  path    'PART_NUMBER_INFORMATION/CAGE_NAME',
              item_condition                     VARCHAR2(1)    path    'PART_NUMBER_INFORMATION/ITEM_CONDITION'  ,
              minimum_shelf_life                 NUMBER         path    'PART_NUMBER_INFORMATION/MINIMUM_SHELF_LIFE',
              shelf_life_remaining               VARCHAR2(3)    path    'PART_NUMBER_INFORMATION/SHELF_LIFE_REMAINING',
              cert_of_conformance                VARCHAR2(1000) path    'PART_NUMBER_INFORMATION/CERTIFICATE_OF_CONFORMANCE',
              export_license                     VARCHAR2(3)    path    'PART_NUMBER_INFORMATION/EXPORT_LICENSE',
              locations                          XMLTYPE        path    'LOCATIONS'
             )x2,
             XMLTABLE('/LOCATIONS/LOCATION'
             passing x2.locations
             columns
              line_location_no                   NUMBER         path     'LINE_NUMBER',
              line_loc_status                    VARCHAR2(15)   path     'STATUS',
              line_loc_status_date               VARCHAR2(24)   path     'STATUS_DATE',
              line_loc_qty                       NUMBER         path     'QUANTITY',
              delivery_destination               VARCHAR2(1000) path     'DELIVERY_DESTINATION',
              delivery_date                      VARCHAR2(24)   path     'DELIVERY_DATE',
              delivery_terms                     VARCHAR2(3)    path     'DELIVERY_TERMS',
              port_of_origin                     VARCHAR2(150)  path     'PORT_OF_ORIGIN',
              recipient_code                     VARCHAR2(16 )  path     'RECIPIENT/CODE',
              recipient_name                     VARCHAR2(40 )  path     'RECIPIENT/NAME',
              recipient_phone                    VARCHAR2(23 )  path     'RECIPIENT/PHONE',
              recipient_email                    VARCHAR2(100 ) path     'RECIPIENT/EMAIL',
              distributions                      XMLTYPE        path     'DISTRIBUTIONS'
             )x3,
             XMLTABLE('/DISTRIBUTIONS/DISTRIBUTION'
             passing x3.distributions
             columns
              dist_line_no                       NUMBER         path     'LINE_NUMBER',
              dist_line_status                   VARCHAR2(15)   path     'STATUS',
              dist_line_status_date              VARCHAR2(24)   path     'STATUS_DATE',
              dist_line_qty                      NUMBER         path     'QUANTITY',
              chart_of_account                   VARCHAR2(420)  path     'CHART_OF_ACCOUNT',
              project_distribution               VARCHAR2(4000) path     'PROJECT_DISTRIBUTION'
              )x4;
    end;As there is change in requirement now I need to read the multiple supplier sites at the header level. Current this is my structure please give an idea how to read the mulitple sites as one record, probably i can increase the supplier site columns at table level so as to capture second site level information.
    But if in case if i receive that time it should not fail please provide some good solution for this issue.
    Thanks in advance for your help.
    Regards
    Nagendra

    Hi odie,
    Thanks for your response. But here my supplier site will always be maxiumum 2 times and minimum 1 time. My thinking is to fit this one in the existing code by repeating the supplier site only like this
              supp_site_id                       NUMBER         path    'HEADER/SUPPLIER/SITES/SITE/ID',
              supp_site_name                     VARCHAR2(140)  path    'HEADER/SUPPLIER/SITES/SITE/NAME',
              supp_site_phone                    VARCHAR2(23)   path    'HEADER/SUPPLIER/SITES/SITE/PHONE',
              supp_sit_phone_ext                 VARCHAR2(4 )   path    'HEADER/SUPPLIER/SITES/SITE/PHONE_EXTENSION',
              supp_site_fax                      VARCHAR2(23 )  path    'HEADER/SUPPLIER/SITES/SITE/FAX',
              supp_site_email                    VARCHAR2(100 ) path    'HEADER/SUPPLIER/SITES/SITE/EMAIL',
              supp_site_add_line1                VARCHAR2(254 ) path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE1',
              supp_site_add_line2                VARCHAR2(35 )  path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE2',
              supp_site_add_line3                VARCHAR2(35 )  path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE3',
              supp_site_country_code             VARCHAR2(2 )   path    'HEADER/SUPPLIER/SITES/SITE/COUNTRY_CODE',
              supp_site_province                 VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/PROVINCE',
              supp_site_state                    VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/STATE',
              supp_site_city                     VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/CITY',
              supp_site_area_code                VARCHAR2(10 )  path    'HEADER/SUPPLIER/SITES/SITE/AREA_CODE',
              supp_site_zip                      VARCHAR2(20 )  path    'HEADER/SUPPLIER/SITES/SITE/ZIP',
              supp_site_region_code              VARCHAR2(3 )   path    'HEADER/SUPPLIER/SITES/SITE/REGION_CODE',
              supp_site_id2                       NUMBER         path    'HEADER/SUPPLIER/SITES/SITE/ID',
              supp_site_name2                     VARCHAR2(140)  path    'HEADER/SUPPLIER/SITES/SITE/NAME',
              supp_site_phone2                    VARCHAR2(23)   path    'HEADER/SUPPLIER/SITES/SITE/PHONE',
              supp_sit_phone_ext2                 VARCHAR2(4 )   path    'HEADER/SUPPLIER/SITES/SITE/PHONE_EXTENSION',
              supp_site_fax2                      VARCHAR2(23 )  path    'HEADER/SUPPLIER/SITES/SITE/FAX',
              supp_site_email2                    VARCHAR2(100 ) path    'HEADER/SUPPLIER/SITES/SITE/EMAIL',
              supp_site_add_line1_2                VARCHAR2(254 ) path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE1',
              supp_site_add_line2_2                VARCHAR2(35 )  path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE2',
              supp_site_add_line3_2                VARCHAR2(35 )  path    'HEADER/SUPPLIER/SITES/SITE/ADDRESS_LINE3',
              supp_site_country_code_2             VARCHAR2(2 )   path    'HEADER/SUPPLIER/SITES/SITE/COUNTRY_CODE',
              supp_site_province_2                 VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/PROVINCE',
              supp_site_state_2                    VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/STATE',
              supp_site_city_2                     VARCHAR2(25 )  path    'HEADER/SUPPLIER/SITES/SITE/CITY',
              supp_site_area_code_2                VARCHAR2(10 )  path    'HEADER/SUPPLIER/SITES/SITE/AREA_CODE',
              supp_site_zip_2                      VARCHAR2(20 )  path    'HEADER/SUPPLIER/SITES/SITE/ZIP',
              supp_site_region_code_2              VARCHAR2(3 )   path    'HEADER/SUPPLIER/SITES/SITE/REGION_CODE',As this table I am being used in many areas, it will be problem for me if try to go for different levels of tables. Or else can it be possible to read only once
    I mean only the first in the xml tags and leave the second xml. As there is not much significant for the second one.
    I appreciate your ideas on this, as the structure we are following is to rigid so I don't have much options to explore, please provide me your inputs in this context.
    Thanks for your help.
    Regards
    Nagendra
    Edited by: 838961 on Jul 13, 2011 1:43 AM

Maybe you are looking for