XMLTable - Extract single row among 2 XML tags

Hello,
Aim to extract the BRAND and its COST and I am able to extract with without any problem using XMLTable.
CREATE TABLE xml_tab (seqno number default 1, xml_data XMLType);
INSERT INTO xml_tab
VALUES
(1, XMLType('<PRODUCTS>
<LAPTOPS>
<NOTEBOOK BRAND="HP">1000</NOTEBOOK>
<NOTEBOOK BRAND="LENOVA">2000</NOTEBOOK>
</LAPTOPS>
</PRODUCTS>'));
SELECT t.seqno, tx.* FROM xml_tab t,
XMLTABLE('/PRODUCTS/LAPTOPS/NOTEBOOK' PASSING t.xml_data
COLUMNS brandname CHAR(20) PATH '@BRAND',
cost CHAR(20) PATH '.') tx
WHERE brandname in ('HP', 'LENOVA') AND seqno = 1;
Outpupt
SEQNO BRANDNAME COST
1 HP 1000
1 LENOVA 2000
Below query will demonstrate the problem I am facing and need your kind help to resovle it.
INSERT INTO xml_tab
VALUES
(2, XMLType('<PRODUCTS>
<LAPTOPS>
<NOTEBOOK BRAND="HP">3000</NOTEBOOK>
<NOTEBOOK BRAND="HP">1400</NOTEBOOK>
<NOTEBOOK BRAND="LENOVA">5000</NOTEBOOK>
</LAPTOPS>
</PRODUCTS>'));
(Below query is not working)
SELECT t.seqno, tx.* FROM xml_tab t,
XMLTABLE('/PRODUCTS/LAPTOPS/NOTEBOOK[1]' PASSING t.xml_data
COLUMNS brandname CHAR(20) PATH '@BRAND',
cost CHAR(20) PATH '.') tx
WHERE brandname in ('HP', 'LENOVA') AND seqno = 2;
My requirement is to display only single row of HP and LENOVA brand even if there are multiple XML tags of one brand. Therefore, desired output is*
SEQNO BRANDNAME COST
2 HP 3000
2 LENOVA 5000
Kindly suggest.
Thanks in advance
Sandeep
Edited by: Sandeep98191 on Sep 22, 2012 9:24 PM

WITH t as (
           SELECT  t.seqno,
                   tx.*,
                   row_number() over(partition by brandname order by rownum) rn
             FROM  xml_tab t,
                   XMLTABLE(
                            '/PRODUCTS/LAPTOPS/NOTEBOOK'
                            PASSING t.xml_data
                            COLUMNS
                              brandname CHAR(20) PATH '@BRAND',
                              cost CHAR(20) PATH '.'
                           ) tx
             WHERE brandname in ('HP', 'LENOVA')
               AND seqno = 2
select  seqno,
        brandname,
        cost
  from  t
  where rn = 1
     SEQNO BRANDNAME            COST
         2 HP                   3000
         2 LENOVA               5000
SQL> SY.

Similar Messages

  • Multiple Return to Single Return is Removing XML Tag

    Dear All,
    I'm Using  -  InDesignCS3 + WinXP + VB6.
    I've a InDesign file which is created by XML Import (Our Customers needs XML Output also at the End).
    After importing i've done few modifications (Moved Figs & Captions to frames by PlaceXML method).
    At this stage an Extra Paragraph Return (where the Figure placed while import, before moving to frame) is available.
    When i tried to remove this by replace, XML Tag for the Figures are also deleted from the XML Structure of the Document.
    Is there any other way to do this? - Please Suggest
    Thanks in Advance,
    SaRaVaNaN.N...

    Hai,
    Here is a Simple Example for my Question.
    Ex: Import the following XML and from the XML Structure (Ctrl+Alt+1) Move <figure> to a new Frame.
          You'll see an extra paragraph return between those two paragraphs.
              <root><para>...text 1...</para>
              <figure><title>fig.1</title><img href="myFig1.jpg"/><caption>about the figure</caption></figure>
              <para>...text 2...</para></root>
    GoTo Story Editor (Ctrl+Y). You'll see as follows:
              [x]para>...text 1...<para[x]
              [x]figure]
              [x]para>...text 2...<para[x]
    After Replacing '^b^b' to '^b' it looks like below:
              [x]para>...text 1...<para[x]
              [x]para>...text 2...<para[x]
    Figure Tag is removed from the XML Structure and Story Editor. Is there any way to remove this extra pragraph reture with keeping the XML Structure?
    Thanks...

  • Indesign Javascript, find  xml tag from cursor position

    Hi All,
    I have a single textframe with multiple xml tags within formated by paragraph and character styles.
    I want to access the xml tag attribute of the xmltag, related to my first 5 characters....
    How to do it?
    Or second approch, i need to find first and last xml tag on the page.

    Try this (second approach),
    Select any text frame and try the below code:
    alert(app.selection[0].lines[0].words[0].associatedXMLElements[0].markupTag.name)\\first XML tag
    alert(app.selection[0].lines[-1].words[-1].associatedXMLElements[0].markupTag.name)\\second XML tag
    Vandy

  • Need help in extracting value from an xml tag.

    Hi ALL,
    Good Morning to all, i have problem in fetching a value from a xml tag. I have created a xml schema based on the schema i have created a xmltype table and inserted a value to the table. When i am trying to fetch a value from a particular tag i am unable to do so.. Kindly help me to solve this. Here by i am posting all the workings i have done...
    I am using the following client:
    SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jan 31 11:44:59 2011
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    ////////////////////////////////// XML Schema ///////////////////////
    begin
    dbms_xmlschema.registerSchema(
    'http://www.oradev.com/chipsxml.xsd',
    '<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.oradev.com/chipsxml.xsd"
    xmlns:samp="http://www.oradev.com/chipsxml.xsd"
    version="1.0">
    <element name="Field1">
    <complexType>
    <sequence>
         <element name="UTI">
              <complexType>
              <sequence>
              <element name = "U01" type = "string"/>
              <element name = "U02" type = "string"/>
              <element name = "U03" type = "string"/>
              <element name = "U03a" type = "string"/>
              <element name = "U03b" type = "string"/>          
              <element name = "U03c" type = "string"/>          
              <element name = "U04" type = "string"/>                    
              <element name = "U05" type = "string"/>                    
              </sequence>
              </complexType>
         </element>
    </sequence>
    </complexType>
    </element>
    </schema>',
    TRUE, TRUE, FALSE, FALSE);
    end;
    ////////////////////////// Table which has multiple Column //////////////////////////
    CREATE TABLE chipsxmltable1 (
    id number, XMLDATA XmlType)
    XMLTYPE XMLDATA STORE AS OBJECT RELATIONAL
    XMLSCHEMA "http://www.oradev.com/chipsxml.xsd"
    ELEMENT "Field1";
    ///////////////////////////////// Insert Query in chipsxmltable //////////////////////////
    INSERT INTO chipsxmltable VALUES(
    xmltype.createxml('<?xml version="1.0"?>
    <samp:Field1 xmlns:samp="http://www.oradev.com/chipsxml.xsd" >
    <UTI>
    <U01>No</U01>
    <U02>Y</U02>
    <U03>Y</U03>
    <U03a>Y</U03a>
    <U03b>Y</U03b>
    <U03c>Y</U03c>     
    <U04>Y</U04>
    <U05>Y</U05>          
    </UTI>
    </samp:Field1>'));
    To show the data as a field with structure:
    1. Query:
    Select * from chipsxmltable1;
    Output:
    ID XMLDATA
    1 <?xml version="1.0"?>
    <samp:Field1 xmlns:samp="http://www.oradev.com/chipsxml.xsd">
    <UTI>
    <U01>No</U01>
    <U02>No</U02>
    <U03>Y</U03>
    <U03a>Y</U03a>
    <U03b>Y</U03b>
    <U03c>Y</U03c>
    <U04>Y</U04>
    <U05>Y</U05>
    </UTI>
    </samp:Field1>
    2. Query: (Both the query displays the same Output)
         SELECT X.xmldata.getClobVal() "XMLDATA" FROM chipsxmltable1 X;
         select extract(XMLDATA, '/Field1').getstringval() "XMLDATA" from chipsxmltable1 x;
    Output:
    XMLDATA
    <?xml version="1.0"?>
    <samp:Field1 xmlns:samp="http://www.oradev.com/chipsxml.xsd">
    <UTI>
    <U01>No</U01>
    <U02>No</U02>
    <U03>Y</U03>
    <U03a>Y</U03a>
    <U03b>Y</U03b>
    <U03c>Y</U03c>
    <U04>Y</U04>
    <U05>Y</U05>
    </UTI>
    </samp:Field1>
    To show the data as a single string without structure using "getstringval()":
    3. Query
         select extract(XMLDATA, '//text()').getstringval() "CHIPS - XML" from chipsxmltable1 x;
    OUtput:
    CHIPS - XML
    NoNoYYYYYY
    To show the data as a single string without structure using "getclobval()":
    4.Query
         select extract(XMLDATA, '//text()').getClobVal() "CHIPS - XML" from chipsxmltable1 x;
    Output:
    CHIPS - XML
    NoNoYYYYYY
    To show the data in a particular tag with/Without structure (Which is not working) using "EXTRACT" function:
    6.Query:
         select extract(XMLDATA, '/Field1/text()').getstringval() "XMLDATA" from chipsxmltable1 x;
         select extract(XMLDATA, '/Field1/UTI').getstringval() "XMLDATA" from chipsxmltable1 x;
         select extract(XMLDATA, '/Field1/UTI/U01').getstringval() "XMLDATA" from chipsxmltable1 x;
         select extract(XMLDATA, '/Field1/UTI/U01/text()').getstringval() "XMLDATA" from chipsxmltable1 x;
    Output:
    CHIPS - XML
    The above queries are not fetching the value.
    To show the data in a particular tag with/Without structure (Which is not working) using "EXTRACTVALUE" function:
    7. Query:
         select extractValue(XMLDATA, '/Field1/UTI') "XMLDATA" from chipsxmltable1 x;
         select extractValue(XMLDATA, '/Field1/UTI/U01') "XMLDATA" from chipsxmltable1 x;
    Output:
    X
    The above queries are not fetching the value.
    My question is:
    How to fetch values from xml tag when the value are inserted through xml schema?
    Apologies if the description is not clear. Kindly let me know if further details are needed. Many thanks for your help.
    Very best regards,
    Godwin Jebakumar C.V.

    Hi,
    You need to declare the namespace of each element used in the XPath expression, like this :
    SQL> select extractvalue( XMLDATA
      2                     , '/samp:Field1/UTI/U01'
      3                     , 'xmlns:samp="http://www.oradev.com/chipsxml.xsd"' ) "XMLDATA"
      4  from chipsxmltable1 x
      5  ;
    XMLDATA
    No
    SQL> select extract( XMLDATA
      2                , '/samp:Field1/UTI'
      3                , 'xmlns:samp="http://www.oradev.com/chipsxml.xsd"'
      4                ).getstringval() "XMLDATA"
      5  from chipsxmltable1 x
      6  ;
    XMLDATA
    <UTI>
      <U01>No</U01>
      <U02>Y</U02>
      <U03>Y</U03>
      <U03a>Y</U03a>
      <U03b>Y</U03b>
      <U03c>Y</U03c>
      <U04>Y</U04>
      <U05>Y</U05>
    </UTI>
    Please see EXTRACT and EXTRACTVALUE documentation :
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions051.htm#i1006712
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions052.htm#SQLRF06173
    BTW, "XMLDATA" is a pseudo-column used by Oracle. I don't know if it'll ever cause any conflict but maybe you should rename your column.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/pseudocolumns010.htm#SQLRF00256
    Regards.

  • Document contains too many nodes error when extracting xml tag name

    I Have a large xml file in which the tag contains ~: as the value.
    Now I am trying to extract all the tags which have ~: as the value and store that column using the following query and insert into a table.
    insert into space_md select distinct xmltype(extract(value(x), '/').getstringval()).getrootelement() COLUMN_NAME
    from gt_xmltype_tab gt, TABLE(XMLSequence(extract(gt.xmlfile1, '/ROWSET/ROW/*'))) x
    where instr(extract(value(x),'/').getstringval(),'~:') > 1;
    The xml file was generated using dbms_xmlgen.getxml. Table has 48 columns and around 4000 rows.
    My above insert query gave me an error of 31186 too many nodes error.
    I am using oracle version 10.2.0.3.
    Following are the set of commands I ran....
    SQL> insert into gt_xmltype_tab(xmlfile1)
    values(XMLType(bfilename('BKUP_RES','QC.xml'),nls_charset_id('AL32UTF8'))); 2
    1 row created.
    SQL> SQL>
    SQL> insert into restore_space_metadata select distinct 'QC', xmltype(extract(value(x), '/').getstringval()).getrootelement() COLUMN_NAME
    2 from gt_xmltype_tab gt, TABLE(XMLSequence(extract(gt.xmlfile1, '/ROWSET/ROW/*'))) x
    3 where instr(extract(value(x),'/').getstringval(),'~:') > 1;
    insert into restore_space_metadata select distinct 'QC', xmltype(extract(value(x), '/').getstringval()).getrootelement() COLUMN_NAME
    ERROR at line 1:
    ORA-31186: Document contains too many nodes
    Is there a better way of extracting the xml tag element name based on the xmltag content?
    There is one other table which has 172 columns but only 100 rows so it doesnt create any problem on that table.
    But this QC table has less columns but many many rows...
    Any suggestions

    There is a requiremnent of taking centain type of data backup and restore it.
    It was implemented on flat file approach which was giving errors.
    So it was implemented using XML approach.
    Read data, store in xml file and read from xml file and load it into table.
    Further, found that dbms_xmlstore is not able to handle tag only with whitespace
    and tried to use the loading xml file into xmltype table column and extract data.
    XMLTYPE column also has same problem of ignoring whitespace when used with extractvalue functions.
    So for the workaround I update xmlfile having only one more more whitespace in the tag to have ~: character once.
    After restoring data from xml to table I would run update qeury to update ~: to " ".
    Now instead of running blind update for all the tables and all the columns from ~: to " " I thouhgt whyy not create a xml file of tag having ~:
    along with its tablename.
    and thats where I found the problem of too many nodes...
    THe insert query you saw is populating table for table_name and column_name with tag having only ~: in it.
    I hope this gives you the fair idea of stuff I am doing.

  • Extracting XML tags and its values using ORACLE PL/SQL

    I need help to create a procedure that receive a XML string and insert it into the table after parsing it.
    If the XML has 10 tags then it should insert into the table 10 rows. Table will be having tag name and value. This will be plain XML tags without attributes in tags.

    Hi,
    I am able to retreive the values of the tags using extract function (example: lv_xml.EXTRACT ('/ROWSET/EMPLOYEE/EMPNO/text()').getstringval() ). But could you help me to find some way to extract the tags also since we have no idea what the tags are and how many tags are there, in advance.
    Anybody's help will be a releif!
    Thanks in advance,
    Leslie
    Message was edited by:
    user544830

  • How to add Multiple XML Tags for a single column for an RDF

    Hi Gurus,
    I have Requirement in the Oracle D2k Report from which we are generating the xml tags.
    My Requirement is in a table i have 2 columns say A and B.
    i am able to generate three xml tags separately using the report builder by clicking on the column name and in the xml setting giving the xml tag.
    eg: table Acount contains 2 columns A and B with respective data
    A B
    QT 1
    QTS 0
    QTR 2
    i am able to general xml tags like this
    <ACount>
    <AStatus>QT</AStatus>
    <HeadCount>1</HeadCount>
    </ACount>
    <ACount>
    <AStatus>QTS</AStatus>
    <HeadCount>0</HeadCount>
    </ACount>
    my requiremnt for the xml tags is
    <ACount>
    <AStatusQT>1</AStatusQT>
    <AStatusQTS>0</AStatusQTS>
    </ACount>
    kindly help me out how to achieve this requirment in the rdf file mulitple xml tags.
    all your input are most valuable to me, thanks in advance
    Edited by: 909577 on Apr 9, 2012 3:10 PM

    I'm sorry for being so dense, but I'm not quite following, although what I've tried makes me think if I can follow you, it will work :)
    To answer your initial questions, you are correct with both your assumptions:
    1) detailType is the parameter that specificies YTD/Weekly, this is a "report defined" parameter that I am using to determine which Row Group to display (either YTD or Weekly)
    2) SchoolDaysActiveWeek is the parameter that is being set to either true or false -- this is a field in the cube that states whether that record is for the current week or not
    So in following your instructions, well that's the problem I'm not quite following :)
    1) When you say Delete the SchoolDaysActiveWeek parameter from the report only, do you mean to mark the parameter as Hidden?  If so, I've done this.
    2) I'm not quite sure where to use the statement you provided me.  You said to put it in the dataset, but I don't know which dataset.  I assume you mean the "main" dataset (as opposed to the hidden dataset that gets generated when you mark a field
    as a parameter).  If this is the case, the only place I could see that would allow you to use such a statement is in the Filter section of the properties.  I tried this, and it did not generate any errors, but it also kept my report groups from displaying
    -- it just showed a blank report, so I think it probably wasn't bringing back any rows to populate them with.
    I also tried going into the Expression section for the SchoolDaysActiveWeek parameter in the second screenshot and placing the statement there.  When I did this and ran the report, I would get the following error:
    The 'SchoolDaysActiveWeek' parameter is missing a value
    So what am I missing!? 
    Also, thanks for taking the time to respond!!

  • Reading a xml file and Extract content of xml tags

    Hi,
    I need a InDesign script to Extract content of xml tags by reading a local xml file. And stamping the content of xml on InDesign Text frame.
    My sample xml is as follows .
    <events type="array">
    <event> 
    <aktiv_jn>J</aktiv_jn> 
    <enetpulse_id>1712408</enetpulse_id>
    <event_id>65974</event_id>
    <hjemmehold>AZ Alkmaar</hjemmehold>
    <id>93</id>
    <kickoff>2014-08-17T12:30:00+01:00</kickoff>
    <land_id>140</land_id>
    <land_navn>Holland</land_navn>
    <liga_id>13684</liga_id>
    <liga_navn>Eredivisie</liga_navn>
    <livebetting_jn>J</livebetting_jn>
    <marked_id>2897740</marked_id>
    <marked_nummer>138</marked_nummer>
    <marked_tekst>AZ Alkmaar - Ajax</marked_tekst>
    <moderkamp_jn>J</moderkamp_jn>
    <ob_bet_type>MR</ob_bet_type>
    <odds_1>2.95</odds_1>
    <odds_2>2.25</odds_2>
    <odds_x>3.35</odds_x>
    <program_slut>2014-08-18T23:59:00+01:00</program_slut>
    <program_start>2014-08-15T00:00:00+01:00</program_start>
    <resultat>2</resultat>
    <spilstop_dato_tid>2014-08-17T12:30:00+01:00</spilstop_dato_tid>
    <sport_id>21</sport_id>
    <sport_navn>Fodbold</sport_navn>
    <taerskel nil="true"/>
    <udehold>Ajax</udehold>
    <udfald_1_id>9661951</udfald_1_id>
    <udfald_2_id>9661953</udfald_2_id>
    <udfald_x_id>9661952</udfald_x_id>
    </event>
    </events>
    And on my Indesign Page upon execution of script: I need text like,
    land_navn:     Holland
    odds_1:     2.95
    odds_2:     2.25
    odds_x:     3.35

    Hi,
    Try:

  • Sender File (FCC) - Content of File into single XML Tag

    Hi,
    Input file
    This is Line1
    This is Line2
    Expected Sender File adapter FCC into XML
    <Document>
    .<File>
    ..<Content> This is line 1 This is line2</content>
    .</File>
    </Document>
    FCC is giving the following output with the below config,
    File.fieldNames = Content
    File.fieldSeparator = '0x1A' (HexaDecimal rep for EndOfFile)
    <Document>
    .<File>
    ..<Content>This is line 1</content>
    ..<Content>This is line 2</content>
    .</File>
    </Document>
    How can i read the complete file into a single XML tag?
    I am aware of other options (AdapterModules or Javamapping). But i want to keep it simple to FileAdapter using FCC or using MessageTransformBean (if possible)
    -SM

    FCC donse't work here, So i wrote a simple Java map inside Execute method to convert the content to the required format.
      public void execute(InputStream in, OutputStream out)  throws StreamTransformationException{
    StringBuilder sb = new StringBuilder();
           try {
           BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
           while ((line = reader.readLine()) != null) {
               sb.append(line).append("\r\n");
           } finally {
           in.close();
    After i had the input string, i formatted it to get the required output as XML ...
    <Document>
    .<File>
    ..<Content> This is line 1 This is line2</content>
    .</File>
    </Document>

  • Extracting value from XML tags in Java

    Hi all,
    I need to extract the value from a string (XML Format). Eg. <Name>Ray</Name> and displaying Name: Ray
    The string value is like any other String class object except that it is format with XML tags. I have quite a few examples that shows how a value can be read from a .xml file but none that describe how to get a value from a String object.
    Thanks in advance.

                         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         DocumentBuilder parser = factory.newDocumentBuilder();
         Document document = parser.parse("Your XML Goes here ");

  • Delete empty rows while having empty xml tag

    I've seen something like same but it doesn't work for me. I have a table which is created using xml rules, some time it contains empty xml tag also converted into row but I don't want these empty rows. After table creation empty rows need to be deleted.
    I've got this script from this forum which delete empty rows
    for(var i=myDocument.textFrames.length-1; i>=0; i--){
      for(var j=myDocument.textFrames[i].tables.length-1; j>=0; j--){
       for(var k=myDocument.textFrames[i].tables[j].rows.length-1; k>=0; k--){
        myContents = 0;
        for(var l=myDocument.textFrames[i].tables[j].rows[k].cells.length-1; l>=0; l--){
         if (myDocument.textFrames[i].tables[j].rows[k].cells[l].contents != "") myContents++;
         if (myContents == 0) myDocument.textFrames[i].tables[j].rows[k].remove();
    but incase of any cell contains empty xml element it goes blank. Could any one help on this.
    Thanks
    Mac

    Gyan,
    Thanks for your help. I have modified the code as below:
    public void removeblankline()
    OAViewObject rvo = (OAViewObject)findViewObject("NCRPaymentExtLineVO1");
    Row row[] = rvo.getAllRowsInRange();
    System.out.println("Remove all blank rows");
    System.out.println("Total Rows"+rvo.getRowCount());
    int jcount = rvo.getRowCount();
    for (int j=0;j< jcount;j++)
    NCRPaymentExtLineVORowImpl rowj = (NCRPaymentExtLineVORowImpl)row[j];
    System.out.println("Check Line Number: "+j);
    System.out.println("Line Type Lookup Code: "+rowj.getLineTypeLookupCode());
    if((rowj.getLineTypeLookupCode()==null)||("".equals(rowj.getLineTypeLookupCode().trim())))
    System.out.println("Removed Line Number: "+j);
    rowj.remove();
    System.out.println("Processed with Line Number: "+j);
    } // end removeblankline
    This is the change I have done:
    int jcount = rvo.getRowCount();

  • Single row of XML data missing

    OK, much strangeness here.
    I have an mx:DataGrid taking its data from an array
    collection thusly:
    logSheetData = logs.lastResult.logsheet.data as
    ArrayCollection;
    The XML is being generated perfectly by a php page.
    If the xml consists of 2 or more nodes (i.e. the mysql_query
    returned 2 or more rows of data from the database) then the grid
    populates properly and everyone is happy. However, if the query
    returns only a single row of data, the grid is blank.
    I've checked the php and the contents of the database - if
    there's only a single row of data to come back, one row's worth of
    XML is returned.
    This has been driving me mad all morning! Help!
    -Update-
    I have patched the problem by adding in an empty node to the
    xml structure if only 1 row of data is returned - this seems to
    fool the grid and causes it to display properly. Buy why!

    Corvette Captain wrote:
    In an interactive report, is it possible to display the data from one database row over two or more displayed rows on a page?Yes. Create the required structure using the Detail View properties.
    Users can switch between views using the view controls. You can display the report in Detail View by default via a Dynamic Action: +{thread:id=2187972}+

  • Extract xml tags in java

    ho can I extract the xml tags and its value in a java programs

    Check out the API docs for javax.xml and javax.xml.parser. If you want to parse via DOM (IMHO, the easiest way to learn), then download Xerces from xml.apache.org. There are numerous FAQ's and HOW-TO's on that site.
    - Saish

  • IXMLDOMDocumentPtr save method is saving the z:row tags in single row.

    When i am trying to create a IXMLDOMDocumentPtr and using appendchild populating the domdocument object and finally saving it to the xmlfile the appended rows comes in a single row if we open in notepad.
    here is the code snippet:
    IXMLDOMElementPtr pXMLDOMElement;
    pXMLDOMElement = pXMLDOMNodeRSData->appendChild(pXMLDOMDoc->createElement("z:row"));
    pXMLDOMElement->setAttribute("PARAMETERS_KEY", bstrParamKey);
    pXMLDOMElement->setAttribute("PARAMETERS_SECTION", paramOrder);
    pXMLDOMElement->setAttribute("PARAMETERS_VALUE", paramValue);
    pXMLDOMElement->setAttribute("DESCRIPTION", paramDesc);
    hr = pXMLDOMDoc->save(tszFilePath);
    shown as below:
    <z:row PARAMETERS_KEY="ECL_PROFILE_ID" PARAMETERS_SECTION="100" PARAMETERS_VALUE="1" DESCRIPTION="Sucursal CLP"/><z:row PARAMETERS_KEY="ECL_PROFILE_ID" PARAMETERS_SECTION="101" PARAMETERS_VALUE="1"
    DESCRIPTION="Sucursal USD"/>

    Please reply...

  • How to filter particular xml tag value using -DBMS_XMLGEN / DBMS_XMLSTORE

    Hi,
    I am using dbms_xmlgen and dbms_xmlstore package to extract xml datafile tag value from file server to oracle database table.
    I have used the below pl/sql program to extract the xml tag values to oracle relational table.Its working fine for me.
    But I would like to extract the values based on particular filter condition.
    The following xml program I have 3 rows I would like extract the xml data based on the following condition .
    Filter condition
    ==============
    the tag <STATE_ABBREVIATION> value shuold be 'CA' and the <CITY> tag value should be Palo_Alto then I will store the ZIPCODE
    ZIP_CODE_EXTN,STATE_ABBREVIATION tag values in the Oracle Relational table.
    The below pl/sql program storing all the three rows but I required the values based on the filter condition that I mentioned earlier.
    Kindly assist me what are the steps that I need to change in this program.?
    XML Program file content.
    ======================
    <ZIPCODES>
    <mappings>
    <STATE_ABBREVIATION>CA</STATE_ABBREVIATION>
    <ZIPCODE>94301</ZIPCODE>
    <ZIP_CODE_EXTN>9277</ZIP_CODE_EXTN>
    <CITY>Palo_Alto</CITY>
    </mappings>
    <mappings>
    <STATE_ABBREVIATION>CA</STATE_ABBREVIATION>
    <ZIPCODE>95302</ZIPCODE>
    <ZIP_CODE_EXTN>9279</ZIP_CODE_EXTN>
    <CITY>LA</CITY>
    </mappings>
    <mappings>
    <STATE_ABBREVIATION>TX</STATE_ABBREVIATION>
    <ZIPCODE>75038</ZIPCODE>
    <ZIP_CODE_EXTN>7837</ZIP_CODE_EXTN>
    <CITY>DALLAS</CITY>
    </mappings>
    </ZIPCODES>
    PL/SQL Program for XML extract.
    ==========
    declare
    charString varchar2(80);
    finalStr varchar2(4000) := null;
    rowsp number;
    insCtx DBMS_XMLStore.ctxType;
    ctx dbms_xmlgen.ctxHandle;
    v_FileHandle UTL_FILE.FILE_TYPE;
    begin
    v_FileHandle := utl_file.fopen('XMLTEST','XML_NEW_CITIES.XML','r') ;
    loop
    BEGIN
    utl_file.get_line(v_FileHandle, charString);
    exception
    when no_data_found then
    utl_file.fclose(v_FileHandle);
    exit;
    END;
    dbms_output.put_line(charString);
    if finalStr is not null then
    finalStr := finalStr || charString;
    else
    finalStr := charString;
    end if;
    end loop;
    insCtx := DBMS_XMLStore.newContext('SYS.ZIPCODES');
    dbms_xmlgen.setRowsetTag(insCtx,'ZIPCODES');
    dbms_xmlgen.setRowsetTag(insCtx,'mappings');
    DBMS_XMLStore.clearUpdateColumnList(insCtx);
    DBMS_XMLStore.setUpdateColumn(insCtx,'ZIPCODE');
    DBMS_XMLStore.setUpdateColumn(insCtx,'ZIP_CODE_EXT N');
    DBMS_XMLStore.setUpdateColumn(insCtx,'STATE_ABBREV IATION');
    rowsp := dbms_xmlstore.insertXML(insCtx,finalstr);
    end;
    Thanks,
    nat

    Thanks for your reply. :)
    Its working fine in the DBMS_XMLSTORE package. Here I have given the code
    CREATE OR REPLACE TYPE typ_dummy AS  OBJECT
    ( "@ENO"   NUMBER,
      "@ENAME" VARCHAR2(100),
      eno      NUMBER,
      ename    VARCHAR2(100));
    CREATE TABLE EMP
      empno    VARCHAR2(25),
      sal      NUMBER,
      hiredate DATE,
      typ      TYP_DUMMY
    DECLARE
      insCtx DBMS_XMLStore.ctxType;
      rows NUMBER;
      xmldoc CLOB :=
        '<ROWSET>
           <ROW num="1">
             <SAL>1800</SAL>
             <EMPNO>739</EMPNO>
             <HIREDATE>27-AUG-1996</HIREDATE>
               <TYP ENO="739" ENAME="Nazurullah">
               <ENO> 1 </ENO>
               <ENAME> ALDRIN </ENAME>
               </TYP>
           </ROW>
           <ROW>
             <SAL>18000</SAL>
             <EMPNO>7369</EMPNO>
             <HIREDATE>27-AUG-1996</HIREDATE>
             <TYP ENO="7369" ENAME="PEPPIN" />
           </ROW>
           <ROW>
             <SAL>37000</SAL>
             <EMPNO>20701</EMPNO>
             <HIREDATE>27-AUG-1996</HIREDATE>
             <TYP>
               <ENO> 20701 </ENO>
               <ENAME> VENKATACHALAM </ENAME>
             </TYP>
           </ROW>
         </ROWSET>';
    BEGIN
      insCtx := DBMS_XMLStore.newContext('emp'); -- get saved context
      -- Now insert the doc.
      -- This will only insert into EMPNO, SAL and HIREDATE columns
      rows := DBMS_XMLStore.insertXML(insCtx, xmlDoc);
      -- Close the context
      DBMS_XMLStore.closeContext(insCtx);
    END;
    SELECT * FROM emp;
    EMPNO        SAL HIREDATE          TYP(@ENO, @ENAME, ENO, ENAME)
    739         1800 27-AUG-96     TYP_DUMMY(739, 'Nazurullah', 1, ' ALDRIN ')
    7369       18000 27-AUG-96     TYP_DUMMY(7369, 'PEPPIN', NULL, NULL)
    20701      37000 27-AUG-96     TYP_DUMMY(NULL, NULL, 20701, ' VENKATACHALAM ')

Maybe you are looking for

  • Noise from hard disk when stressed

    Hi all, I experienced a scratching noise coming from the hard disk (?) when the computer is stressed (e.g. iWeb, Photoshop, etc.). I checked the CPU usage and the fan rpm but the noise continues even though the fan is swirling very low and the CPU is

  • HT1386 I get an error message when I try to sync my iPod touch - "you do not have enough access privileges for this operation"

    I recently installed a new hard drive on my PC, downloaded iTunes, updated the software on my iPod touch and now I get this error message when I try to sync:  "you do not have enough access privileges for this operation."  It never did this before, w

  • Library Structure in iPhoto 6

    It's been a BIG disappointment to learn in the wrong way that '6' alters the previous date based filing structure of images. Seems to have created a new 'roll based' filing system. Date based filing made it very easy to find files when using other ap

  • LSMW datamigration material master with multiple distribution channels

    Hi, We plan on using the LSMW to migrate our customer's material master to a ECC 6.0 system. Currently we use the BMM00 and BMMH1 structures, but there I can specify only one distribution channel. Does anyone know how to include multiple distribution

  • Adding markers to RED footage in Prelude

    Hey everyone, I was hoping to find a way to add markers to my RED footage without having to transcode it during ingestion. All my footage is kept on a separate drive from my computer. Two separate computers can pull from this drive so I'd love to avo