Read in a file in UTF-16LE

hi all,
the following code works only on a small UTF-16LE file, but not on a file of say > 100 KB... with such a file the FIRST command isr.read() causes the program to hang...! wrapping with BufferedReader does not solve the prob...
InputStreamReader isr = new InputStreamReader( new FileInputStream("filename"), "UTF-16LE");
for( int i = 0; i < 50; i++ ){
int ch = isr.read();
System.out.println( "char " + i + ": " + ch );
FLUMMOXED... PLS HELP!!

the file is a normal file with normal line lengths...
it can be read in to sthg like TextPad and viewed...
so somehow this app is able to decode it OK...
question is what exactly is happening between
BufferedReader, InputStreamReader and
FileInputStream... and how to buffer the whole
process so that manageable chunks can be decoded... I have used BufferedReader the way you have but on (UTF-8) log files with lengths in excess of 100 MBytes without any problem like this. I have to believe that BufferedReader is not able to detect the end of line.
I would create a wrapped Reader that prints (in hex?) the characters it is reading before passing them to the BufferedReader.

Similar Messages

  • Manually adding BOM to UTF-16LE file?

    hi.
    i have a bash script that needs to preform something on a string from standard input, save it in a file and convert the file to UTF-16LE with BOM for further processing by another application.
    i use iconv to convert the text file to UTF-16LE, but iconv actually creates a little-endian file WITHOUT the bom. (converting to UTF-16 creates a big endian file WITH bom)
    i see no way of creating LE with BOM with iconv, so i thought maybe i could simply add the byte-order marks (FF FE) to the beginning of the unicode file. how can i do that?
    many thanks in advance
    tench

    If you want to do everything from within bash script, then you can use something like
    {code}
    #!/bin/sh
    # I think xpg_echo is ON by default, but just in case...
    shopt -s xpg_echo
    cat > infile
    # assume the input is in UTF-8
    (echo '\xFF\xFE\c'
    iconv -f UTF-8 -t UTF-16LE infile) > outfile
    {code}
    Of course use of infile can be omitted if you don't need it.

  • Message Mapping Problem with UTF-16LE Encoded XML

    Hello,
    we have the following scenario:
    IDoc > BPM > HTTP Sync Call > BPM > IDoc
    Resonse message of the HTTP call is a XML file with UTF-16LE processing instruction. This response should then be mapped to a SYSTAT IDoc. However the message mapping fails "...XML Parser: No data allowed here ...".
    So obviously the XML is not considered as well-formed.
    When taking a look at SXMB_MONI the following message appears: "Switch from current encoding to specific encoding not supported.....".
    Strange thing however is if I save the response file as XML and use the same XML file in the test tab message mapping is executed successfully.
    I also tried to use a Java Mapping to switch encodings before executing message mapping, but the error remains.
    Could the problem be, that the codepage UTF-16LE is not installed on the PI system ? Any idea on that ?
    Thank you!
    Edited by: Florian Guppenberger on Feb 2, 2010 2:29 PM
    Edited by: Florian Guppenberger on Feb 2, 2010 2:29 PM

    Hi,
    thank your for your answer.
    This is what I have tried to achieve. I apply the java conversion mapping when receiving the response message - i tried to convert the response to UTF-16, UTF-8 but none of them has helped to solve the problem.
    I guess that using adapter modules is not an option either as it would modify the request message, but not the response, right?

  • Problem using saxparser(reading japanese xml file)

    Hi everybody,
    I hav a problem while reading japanese xml file.(UTF-8 charset)
    I have to read the file and process it.
    But in the characters function of the saxparser(defaulthandler) the japanese chatracters are not read properly and the program is
    displaying some junk values(????) instead of the actual japanese characters.
    I am also usind xsd validation.
    I am not able to where the characters manipulation is being done.
    Please help me as soon as possible .
    Thanks in advance,
    Charan.

    There are a couple of things probably going on.
    1) When I've done things using Unicode unusual characters, they do not print properly if you do System.out.println( ). If you have a Gui panel and can put them into a JTextArea or JEditorPane, they may show up properly if you have set the font for that object to one that can display the characters.
    2) Many people starting with SAX write their code assuming that the characters method is only called once for each element that has text content. This is incorrect. The characters method can be called many times, and it is your responsibility to catch all of the data. In 1.4 you can use a StringBuffer, or in 1.5 there is a StringBuilder. You use these to accumulate the data from all of the calls to charactrers() between the startElement and endElement.
    Each parser can decide how often it calls characters, so you have to be able to process data from several calls.
    Dave Patterson

  • Reading UCS-2LE or UTF-16LE from file

    Hello,
    I am writing a program to compile some simple statistics from an exported iTunes library .txt file. I have determined that when iTunes exports the file, it exports it in either the UCS-2LE or UTF-16LE encoding. I have viewed these files in a hex editor and the first 4 digits are ff fe.
    I would like to read text from this file into my program, but I can't because it is in a weird encoding. Right now, I have to "Save as" the file to a different encoding (usually I use ASCII), to be able to read it.
    This is the code I am currently using to read the input.
    FileReader freader = new FileReader(file_name);
    BufferedReader input_file = new BufferedReader(freader);I am fairly new to Java so any help is appreciated, and please try to be as specific as possible.
    Thanks.
    Message was edited by:
    imdandman

    Hello,
    I am writing a program to compile some simple
    statistics from an exported iTunes library .txt file.
    I have determined that when iTunes exports the file,
    it exports it in either the UCS-2LE or UTF-16LE
    encoding. I have viewed these files in a hex editor
    and the first 4 digits are ff fe.iTunes also exports an XML file at the library root, in case that would be a more attrative option. I think there's a parsing library here, but it may have been retired:
    http://www.macdevcenter.com/pub/a/mac/2003/09/03/mytunes.html
    There's also an iTunesFileChooser that parses the XML file quite well and returns arrays of Song and Playlist objects. I've used it with iTunes 7, and it works for me.
    http://www.robbiehanson.com/iTunesJava.html

  • Probs with read-in of UTF-16LE file

    hi all,
    the following code works only on a small UTF-16LE file, but not on a file of say > 100 KB... with such a file the first isr.read() causes the program to hang...! wrapping with BufferedReader does not solve the prob...
    InputStreamReader isr = new InputStreamReader( new FileInputStream("filename"), "UTF-16LE");
    for( int i = 0; i < 50; i++ ){
    int ch = isr.read();
    System.out.println( "char " + i + ": " + ch );
    FLUMMOXED... PLS HELP!!

    Simple example
    try {
            BufferedReader in = new BufferedReader(new FileReader("FileName.txt"));
            String str;
            while ((str = in.readLine()) != null) {
                //do whatever whith str       
            in.close();
        } catch (IOException e) {
            //Handle Exception...

  • Need help to read and write using UTF-16LE

    Hello,
    I am in need of yr help.
    In my application i am using UTF-16LE to export and import the data when i am doing immediate.
    And sometimes i need to do the import in an scheduled formate..i.e the export and imort will happend in the specified time.
    But in my application when i am doing scheduled import, they used the URL class to build the URL for that file and copy the data to one temp file to do the event later.
    The importing file is in UTF-16LE formate and i need to write the code for that encoding formate.
    The problem is when i am doing scheduled import i need to copy the data of the file into one temp place and they doing the import.
    When copying the data from one file to the temp i cant use the UTF-16LE encoding into the URL .And if i get the path from the URl and creating the reader and writer its giving the FileNotFound exception.
    Here is the excisting code,
    protected void copyFile(String rootURL, String fileName) {
    URL url = null;
    try {
    url = new URL(rootURL);
    } catch(java.net.MalformedURLException ex) {
    if(url != null) {
    BufferedWriter out = null;
    BufferedReader in = null;
    try {
    out = new BufferedWriter(new FileWriter(fileName));
    in = new BufferedReader(new InputStreamReader(url.openStream()));
    String line;
    do {
    line = in.readLine();
    if(line != null) {
    out.write(line, 0, line.length());
    out.newLine();
    } while(line != null);
    in.close();
    out.close();
    } catch(Exception ex) {
    Here String rootURL is the real file name from where i have to get the data and its UTF-16LE formate.And String fileName is the tem filename and it logical one.
    I think i tried to describe the problem.
    Plz anyone help me.
    Thanks in advance.

    Hello,
    thanks for yr reply...
    I did the as per yr words using StreamWriter but the problem is i need a temp file name to create writer to write into that.
    but its an logical one and its not in real so if i create Streamwriten in that its through FileNotFound exception.
    The only problem is the existing code build using URL and i can change all the lines and its very difficult because its vast amount of data.
    Is anyother way to solve this issue?
    Once again thanks..

  • Reading/Parsing a CSV file in UTF-16 ?

    Hello everyone,
    I'm in rush to modify my current CSV file parser that works fine for files in UTF-8 , to be able to parse the UTF-16 as well, as far as I checked the sample plugins, didn't find any code,
    Also how could have support for both encodings? to do this I need to recognize the encoding by reading the file first then decide how to read from stream, any advice/ snippet will greatly appreciated.
    P.S. I'm using this code to read a file
    stream = StreamUtils::CreateFileStreamRead()
    stream ->XferByte(aChar) // in a loop till find a eol char
    I need to use to read the 2 bytes, i had some experiment with XferInt16 but seems it doesn't do what i want...
    Regards,
    Kamran

    I had forgotten to skip the first two bytes in this case, Now I can read the file properly with XferInt16, also you may consider Byte Swapping for BigEndian in parsing process.
    -Kamran

  • Reading a file in UTF-8 format

    Hi,
    I am trying to read a UTF-8 file but cannot see how to tell the file reader ( BufferedREader) to expect a UTF-8 format.
    I can write to a UTF-8 formatted file ok using a Charset object in the FileWriter constructor but I can't see the equivalent solution for reading.
    Any help appreciated
    Thanks ... J

    import java.io.*;
    class Test127 {
        public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException, IOException {
            BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream (args[0]), "UTF-8"));
            String line = br.readLine();
            if (line != null)
                System.out.println (line);
            br.close();

  • When creating new table in sqllite db via Flex it become encoded as "utf-16le"

    Hi Guys
    I have some annoying problem with my AIR application
    The application is communicating with a local DB (sqllite).
    as part of initial installation I'm checking if the db exist.
    in case not then:
    I create one (file)
    create the relevent tables inside
    and populate them.
    For some reason, on the tables creation step the sqllite db become encoded as UTF-16le instead of UTF-8.
    The question is how can I make the tables creation step to leave the db as UTF-8
    thanks in advance for your help.
    This is my creation code
    the "connection" is from flash.data.SQLConnection type
    The "file" contain the following information
    <sql>
    <statement>
    CREATE TABLE IF NOT EXISTS MYTABLE
          MYTABLE_VERSION                NUMBER NOT NULL,
           MYTA|BLE_INSERT_DATE                 DATE NOT NULL
    </statement></sql>
    The below is the relevent code:
    var stream:FileStream = new FileStream();
                stream.open(file, FileMode.READ);
                var xml:XML = XML(stream.readUTFBytes(stream.bytesAvailable));
                stream.close();
                var statement:XML = null;
                try
                    connection.begin(lockType);
                    for each (statement in xml.statement)
                        var stmt:SQLStatement = new SQLStatement();
                        stmt.sqlConnection = connection;
                        stmt.text = statement;
                        stmt.execute();           
                } catch(err:Error)
                    connection.rollback();
                    throw err;
                connection.commit();

    It doesn't look like you're using DBSequence domain for the OrderLinesId attribute. If you are then you do not need to fill in the sequence as you've done in the create method.
    Getting back to create issue, You may want to set the 'order' id (foreign key) values before calling super and then call the getOrder() (or getXXX where XXX is the order accessor in this entity) method to verify if the order of the given ID exists/found in the cache.
    By the way, are you also using a similar create() in order with DBSequence as the type for the pK and you force a sequence value on top of it via setAttribute?
    Yes, this is the create method inside CrpOrderLinesImpl.java
    protected void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl s = new SequenceImpl("CRP_ORDER_LINES_ID_SEQ", getDBTransaction());
    setAttribute("OrderLinesId",s.getSequenceNumber());
    Thanks,
    Brad

  • Encoding issue - having UTF-16LE BOM "FF FE"

    Hello Experts,
             The scenario is as follows:
    SAP sends IDOCS -> SAP-PI (collects IDOCS & creates IDOC xml) -> Content conversion done at Receiver CC -> Text File having pipe delimited is placed in an FTP location.
    Requirement :
    Currently SAP R/3 is sending Balkan and Cyrilllic chracters to PI. Both SAP-R/3 and PI are Unicode compliant. SAP-PI version being used  is SAP-PI 7.1. BPM is used to collect the idocs based on time.
    The SAP-PI while converting the IDOC to idoc XML, it has header as "encoding=UTF-8".
    The text file that is getting created at the FTP location is an ANSI file. (If you open the text file with EDITPLUS(ver3) tool, you can check the file type as ANSI. )We need to change this as UTF-16LE.
    In the receiver CC, in the first Target tab, we have maintained Transfer Mode as "Binary" in FTP connection parameters.
    In the Processing tab, we have maintained the File type as Text and Encoding as "UTF-16LE".
    We also switched from Binary-Binary, Binary-Text and Text-Text in both the tabs, but the file that is getting put, is still an ANSI file in the FTP location.
    In PI all the characters are coming correctly. But the time of creating the file, the file is getting created as ANSI.
    We need to have the file type as UTF-16 having BOM(Byte Order Mark) as "FF FE". If you open in the EDITPLUS text editor, it should show as UTF-16.
    Please if any of you experts have come across any solution for this issue, please let me know the steps. It an issue in production and need your help asap.
    Points to be awarded to the best answer and an answer that helps us solve the problem.
    Thanks.
    Deb.

    from another discussion in SDN forum, I have learned that PI does not add a BOM.
    UTF-16LE and UTF-16BE do not have a BOM, as the byte order is clear from declaration.
    So you have to add the BOM with an OS script.
    When you put UTF-16LE in receiver channel, the target file should be in UTF-16LE. if this does not work, check if UTF-16LE is installed in server, where PI is running. But if it is missing, an error message would happen in channel monitor.
    You have to check the encoding of the file with a hex editor. You cannot verify this with with Notepad or any other text editor.

  • Why did TB set the char encoding for a reply to charset=UTF-16LE ?

    I got a message from Google AdWords in HTML format and wrote a reply. When I sent it I got a timeout trying to send it. I use AVG antivirus to scan outgoing messages using a "local server" at address 127.0.0.1.
    Note that this was my second reply to such a message from AdWords. The only thing I could see that was different was a longer subject line (ending with three periods or dots) and a longer HTML message to which I was replying.
    I tried many things to fix the problem and I cannot remember them, sorry.
    Finally, I got success after truncating the message and the long subject line. The reply was sent instantly, as usual, instead of timing out.
    But it wasn't really success. When I looked at the sent message, the characters in my reply (only) were in Chinese. Looking at the raw (source) message, I see that the charset was set as follows: Content-Type: text/plain; charset=UTF-16LE; format=flowed .
    This seems like a strange charset; nowhere in my settings do I specify anything other than Western (ISO-8859-1).
    I finally was able to send the message successfully (I think) by using Options > Character Encoding > Western (ISO-8859-1), which seems to force the message to be sent using this standard encoding instead of Little Endian.
    What caused this problem to happen? Is there a TB overflow bug for long subject lines?
    I realize that TB is an old and unsupported product, but it seems to be the only good email client to use with Windows 8, so I'm just hoping someone knows something about this.

    Originally posted by: warren.tang.nospam.com
    Warren Tang wrote:
    > Warren Tang wrote:
    >> Warren Tang wrote:
    >>> Hi everybody,
    >>>
    >>> I've been trying to set the default encoding of new files as UTF-8.
    >>> Here are the two settings I've set:
    >>>
    >>> 1. Windows > Preferences > General > Content Types, set UTF-8 as the
    >>> default encoding for all content types.
    >>> 2. Windows > Preferences > General > Workspaces, set "Text file
    >>> encoding" to "Other : UTF-8".
    >>>
    >>> However when I create a new text file, the encoding is always
    >>> ANSI/ISO-8859-1. What did I missed? Thanks.
    >>>
    >>> Regards,
    >>> Warren
    >>
    >> I've also tried
    >> Project Properties > Resource > Text file encoding = UTF-8
    >> However it doesn't work either.
    >>
    >> The only thing that works is changing the file's encoding property,
    >> but I don't want to change it every time I create a new file.
    >>
    >> Is it a bug?
    >
    > It turns out that there are other places I need to set up for HTML and
    > CSS files:
    >
    > Windows > Preferences > Web > CSS Files > Encoding = UTF-8
    > Windows > Preferences > Web > HTML Files > Encoding = UTF-8
    I'm getting mad... The file (on the disk) is still not encoded in UTF-8
    but ANSI.

  • Issue with reading a xml file from xsl

    Hi,
    When I am trying to read a xml file from xsl, I am getting unwanted output.
    Following is the XSL:
    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper
      <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
      <mapSources>
        <source type="XSD">
          <schema location="../xsd/B2BMarketProperties.xsd"/>
          <rootElement name="ReceipentIDType" namespace="http://www.example.org"/>
        </source>
      </mapSources>
      <mapTargets>
        <target type="XSD">
          <schema location="../xsd/B2BMarketProperties.xsd"/>
          <rootElement name="ReceipentIDType" namespace="http://www.example.org"/>
        </target>
      </mapTargets>
      <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.4.0(build 110106.1932.5682) AT [TUE DEC 03 16:06:03 EST 2013]. -->
    ?>
    <xsl:stylesheet version="1.0"
                    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
                    xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
                    xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
                    xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:ns0="http://www.example.org"
                    xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
                    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:med="http://schemas.oracle.com/mediator/xpath"
                    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
                    xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
                    xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
                    xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:ora="http://schemas.oracle.com/xpath/extension"
                    xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
                    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
                    exclude-result-prefixes="xsi xsl ns0 xsd bpws xp20 mhdr bpel oraext dvm hwf med ids bpm xdk xref ora socket ldap">
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
      <xsl:variable name="ReceipentID" select="document('../xsd/B2BMarketProperties.xml')"/>
      <xsl:template match="/">
        <ns0:ReceipentIDType>
        <xsl:for-each select="$ReceipentID">
          <ns0:ReceipentID>
            <xsl:value-of select="$ReceipentID"/>
          </ns0:ReceipentID>
          </xsl:for-each>
        </ns0:ReceipentIDType>
      </xsl:template>
    </xsl:stylesheet>
    Following is the XML ( B2BMarketProperties.xml)
    <?xml version="1.0" encoding="UTF-8" ?>
    <ReceipentIDType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://www.example.org B2BMarketProperties.xsd"
                     xmlns="http://www.example.org">
      <ReceipentID>123</ReceipentID>
      <ReceipentID>345</ReceipentID>
    </ReceipentIDType>
    The output i am getting with this code is
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:ReceipentIDType xmlns:ns0="http://www.example.org">
        <ns0:ReceipentID>123345</ns0:ReceipentID>
    </ns0:ReceipentIDType>
    But, I need output in the following format
    <ns0:ReceipentIDType xmlns:ns0="http://www.example.org">
        <ns0:ReceipentID>123</ns0:ReceipentID>
         <ns0:ReceipentID>345</ns0:ReceipentID>
    </ns0:ReceipentIDType>
    Could you guys let me know what i am doing wrong. Any help would be appreciated.
    Thanks,

    This worked for me :
      <xsl:template match="/">
        <ns0:ReceipentIDType>
          <xsl:for-each select="document('B2BMarketProperties.xml')/*:ReceipentIDType/*:ReceipentID">
            <xsl:variable name="count" select="position()"/>
            <ns0:ReceipentID>
              <xsl:value-of select="document('B2BMarketProperties.xml')/*:ReceipentIDType/*:ReceipentID[$count]"/>
            </ns0:ReceipentID>
          </xsl:for-each>
        </ns0:ReceipentIDType>
      </xsl:template>

  • 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

  • Read Tab delimited File from Application server

    Hi Experts,
    I am facing problem while reading file from Application server.
    File in Application server is stored as follows, The below file is a tab delimited file.
    ##K#U#N#N#R###T#I#T#L#E###N#A#M#E#1###N#A#M#E#2###N#A#M#E#3###N#A#M#E#4###S#O#R#T#1###S#O#R#T#2###N#A#M#E#_#C#O###S#T#R#_#S#U#P#P#L#1###S#T#R#_#S#U#P#P#L#2###S#T#R#E#E#T###H#O#U#S#E#_#N#U#M#1
    i have downloaded this file from Application server using Transaction CG3Y. the Downloaded file is a tab delimited file and i could not see "#' in the file,
    The code is as Below.
    c_split  TYPE abap_char1 VALUE cl_abap_char_utilities=>horizontal_tab.
    here i am using IGNORING CONVERSION ERRORS in order to avoid Conversion Error Short Dump.
    OPEN DATASET wa_filename-file FOR INPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.
          IF sy-subrc = 0.
            WRITE : /,'...Processing file - ', wa_filename-file.   
           DO.
          Read the contents of file
              READ DATASET wa_filename-file INTO wa_file-data.
              IF sy-subrc = 0.
                SPLIT wa_file-data AT c_split INTO wa_adrc_2-kunnr
                                                   wa_adrc_2-title
                                                   wa_adrc_2-name1
                                                   wa_adrc_2-name2
                                                   wa_adrc_2-name3
                                                   wa_adrc_2-name4
                                                   wa_adrc_2-name_co
                                                   wa_adrc_2-city1
                                                   wa_adrc_2-city2
                                                   wa_adrc_2-regiogroup
                                                   wa_adrc_2-post_code1
                                                   wa_adrc_2-post_code2
                                                   wa_adrc_2-po_box
                                                   wa_adrc_2-po_box_loc
                                                   wa_adrc_2-transpzone
                                                   wa_adrc_2-street
                                                   wa_adrc_2-house_num1
                                                   wa_adrc_2-house_num2
                                                   wa_adrc_2-str_suppl1
                                                   wa_adrc_2-str_suppl2
                                                   wa_adrc_2-country
                                                   wa_adrc_2-langu
                                                   wa_adrc_2-region
                                                   wa_adrc_2-sort1
                                                   wa_adrc_2-sort2
                                                   wa_adrc_2-deflt_comm
                                                   wa_adrc_2-tel_number
                                                   wa_adrc_2-tel_extens
                                                   wa_adrc_2-fax_number
                                                   wa_adrc_2-fax_extens
                                                   wa_adrc_2-taxjurcode.
    WA_FILE-DATA is having below values
    ##K#U#N#N#R###T#I#T#L#E###N#A#M#E#1###N#A#M#E#2###N#A#M#E#3###N#A#M#E#4###S#O#R#T#1###S#O#R#T#2###N#A#M#E#_#C#O###S#T#R#_#S#U#P#P#L#1###S#T#R#_#S#U#P#P#L#2###S#T#R#E#E#T###H#O#U#S#E#_#N#U#M#1
    And this is split by tab delimited and moved to other variables as shown above.
    Please guide me how to read the contents without "#' from the file.
    I have tried all possible ways and unable to get solution.
    Thanks,
    Shrikanth

    Hi ,
    In ECC 6 if all the unicode patches are applied then UTF 16 will defintly work..
    More over i would suggest you to ist replace # with some other  * or , and then try to see in debugging if any further  # appears..
    and no # appears then try to split now.
    if even now the # appears after replace statement then try to find out what exactly is it... wheather it is a horizantal tab etc....
    and then again try to replace it and then split..
    Please follow the process untill all the # are replaced...
    This should work for you..
    Let me know if you further face any issue...
    Regards
    Satish Boguda

Maybe you are looking for

  • Error while running eCATT for Best Practice HR- US

    HI All, I am executing BC sets through eCATT for implementing Best Practice of HR for US. While running eCATT i am getting two errors, i am not in a positiong to find out a solution. Can you guys please share your throghts. Error messages are as foll

  • Quicktime disables one of the disks in my RAID 5 array.

    Hi, I have just installed ver 7.2 of Quicktime and after I began playing a Quicktime movie file one of the disks on my RAID array came up as failed. I have managed to recover this problem, but is there anything I can do to stop this happening again??

  • OWA Blank Attachment Preview with Office Web Apps Server

    Environment:  Exchange 2013 CU3 / Office Web Apps Server 2013 OS:  Windows Server 2012 R2 After implementing Office Web Apps server per the Integration with Exchange 2013 instructions, attachment previews in OWA show up as blank windows.  The pop up

  • Do I need a clean Arch install to change DE or WM?

    Hey all, I'm new to Arch... well, I will be new to Arch. Still currently using Fedora. One of the things I'm doing right now is taking some time to read the wiki and fully embracing "The Arch Way." Since I have the opportunity to build a system from

  • How to get safari to remember login and password after I said do not remember

    I went to a website through Safari and logged in and accidentally hit Never remember for this site and now I cannot get safari to remember the login and password. I have gone through preferences/passwords and the site is not listed and it will not al