XSLT from XML document

Hello all you XML gurus
I have written and ABAP as a client to connect to external web services which return an XML response and I now need to write and XSLT in order to transfer the data into my ABAP structure. Is there an easy way to write and XSLT transformation program using the XML as a base?
Take a look at the XML document returned from the webservice
<?xml version="1.0" encoding="utf-8"?>
<SchedRemote xmlns="http://scheduall.com/webservices/">
  <Response>
    <ClientDetails ERRCODE="0" ERRMSG="Ok">
      <Field CL_ID="1127823" />
      <Field PID="0" />
      <Field NAME="Anthonys test client" />
      <Field ADDRESS="" />
      <Field CITY="" />
      <Field STATE="" />
      <Field ZIP="" />
      <Field COUNTRY="" />
      <Field PH1="0836078881" />
      <Field PH2="" />
      <Field FAX="0114674054" />
      <Field NTS="" />
      <Field SNTS="" />
      <Field TAX1="" />
      <Field TAX2="" />
      <Field RATE_ID="0" />
      <Field TAXCODE="0" />
      <Field TERMS_ID="0" />
      <Field STAT="0" />
      <Field EXEC_ID="0" />
      <Field SHORTNAME="" />
      <Field CLIENTTYPE="0" />
      <Field EXTID="" />
      <Field T_SINCE="1/1/1970 12:00:00 AM" />
      <Field BILLPARENT="0" />
      <Field INHOUSE="0" />
      <Field CRLIMIT="0" />
      <Field POREQUIRED="0" />
      <Field DISCOUNT="0" />
      <Field LAST_MOD="4/16/2007 2:44:54 PM" />
      <Field BADDRESS="" />
      <Field BCITY="" />
      <Field BSTATE="" />
      <Field BZIP="" />
      <Field BCOUNTRY="" />
      <Field GMT_OFFSET="0" />
      <Field EMAILADDR="" />
      <Field LATECHARGE="0" />
      <Field GROUP_1="0" />
      <Field GROUP_2="0" />
      <Field GROUP_3="0" />
      <Field GROUP_4="0" />
      <Field GROUP_5="0" />
      <Field GROUP_6="0" />
      <Field GROUP_7="0" />
      <Field GROUP_8="0" />
      <Field GROUP_9="0" />
      <Field GROUP_10="0" />
      <Field GROUP_11="0" />
      <Field GROUP_12="0" />
      <Field BILLATT="" />
      <Field ALTEMAILAD="" />
      <Field EXEC_ID2="0" />
      <Field NOSENDSTMT="0" />
      <Field SHIP_INST="" />
      <Field PROD_ID="0" />
      <Field CREATEDBY="ANDRE" />
      <Field DATECREAT="4/16/2007 2:44:54 PM" />
      <Field MOD_BY="ANDRE" />
      <Field SHIP_VIA="" />
      <Field SHIP_ACC="" />
      <Field MB_NOBILL="0" />
      <Field OT_EXEMPT="0" />
      <Field USE_NIGHT="0" />
      <Field CL_COLOR="0" />
      <Field ASSOCFILE1="" />
      <Field AUTOSELPRJ="0" />
      <Field SALUTATION="" />
      <Field CURR_ID="0" />
      <Field LDR_PREFIX="" />
      <Field TAX3="" />
      <Field F_PRIMARY="0" />
      <Field URL_SUPID="0" />
      <Field TIMEZONE="0" />
      <Field LOCSRCE_ID="0" />
      <Field LOCDEST_ID="0" />
      <Field DSTC_ID="0" />
      <Field UTC_OFFSET="0" />
      <Field AKA_FOR="0" />
      <Field CRDLIMCHK="0" />
      <Field TRAFF_STAT="0" />
      <Field INS_EXPIR="1/1/1970 12:00:00 AM" />
      <Field DEFSHADRID="0" />
      <Field CXL_ID="0" />
      <Field LIB_NOTES="" />
      <Field USEMARKUP="0" />
      <Field MARKUPPCT="0" />
      <Field LNAME="" />
      <Field FNAME="" />
      <Field PLANTID="" />
      <Field PRCHGRPID="" />
      <Field B_NOBILL="0" />
      <Field BARCODE1="" />
      <Field BARCODE2="" />
      <Field EXTID2="" />
      <Field PENINVONLY="0" />
      <Field CONTR_REQD="0" />
      <Field NO_INVEXP="0" />
      <CL_USER>
        <Field CL_ID="1127823" />
        <Field USER1="User field 1" />
        <Field USER2="" />
        <Field USER3="" />
        <Field USER4="" />
        <Field USER5="" />
        <Field USER6="" />
        <Field USER7="" />
        <Field USER8="" />
        <Field USER9="" />
        <Field USER10="" />
        <Field USER11="" />
        <Field USER12="" />
        <Field USER13="" />
        <Field USER14="" />
        <Field USER15="" />
        <Field USER16="" />
        <Field USER17="" />
        <Field USER18="" />
        <Field USER19="" />
        <Field USER20="" />
        <Field USER21="" />
        <Field USER22="" />
        <Field USER23="" />
        <Field USER24="" />
        <Field USER25="" />
        <Field USER26="" />
        <Field USER27="" />
        <Field USERFLAG1="0" />
        <Field USERFLAG2="0" />
        <Field USERFLAG3="0" />
        <Field USERFLAG4="0" />
        <Field USERFLAG5="0" />
        <Field USERFLAG6="0" />
        <Field USERDATE1="1/1/1900 12:00:00 AM" />
        <Field USERDATE2="1/1/1900 12:00:00 AM" />
      </CL_USER>
    </ClientDetails>
  </Response>
</SchedRemote>
I have the following structure in my ABAP program which I would like a way of developing the XSLT in order to populate the results of each field into my program
data: begin of gs_clientdetails.
          include structure zclient. " Contains all the CLIENT fields from Scheduall
          include structure zcluser." Contains all the CL_USER fields from Scheduall
data: end of gs_clientdetails.
Any suggestions??

Hi,
I am not a XSLT expert but Tobias wrote some nice blogs about it. Read them here:
/people/tobias.trapp/blog
You might want to start with this one:
/people/tobias.trapp/blog/2005/05/04/xml-processing-in-abap-part-1
cheers
Thomas

Similar Messages

  • Generating schema from XML document.

    Hi,
    I was wondering if there is any way to generate an xsd from an xml document using some neat java api?
    Thanks in advance,
    Ted Kaminski

    Use JDK 1.4.

  • How do i query attributes from xml documents

    I want to to query only details in Issue id="705230" (id is an attribute)
    I tried this, but does not help. I should be able to query the value of core_org_id attribute
    select extract(CLOB_DATA, 'PcrDocument/PcrOrganization/core_org_id) CORE_ORG_ID from from pcr_files where existsNode(CLOB_DATA, 'PcrDocument/PcrOrganization/Issues/Issue[@id="705230"]')=1;
    -- does not return anything....
    I tried to extract value for R_DATE & R_REVIEW_DATE for issue id=705230, but iam not able to.
    Data for all the issues is retured.
    Here is the query used...
    select extract(CLOB_DATA, 'PcrDocument/PcrOrganization/Issues/Issue') ISSUE from pcr_files where existsNode(CLOB_DATA, 'PcrDocument/PcrOrganization/Issues/Issue[@id="705230"]')=1;
    Here is the part of XML document iam querying on...
    - <ns1:PcrDocument id="PCR-13562" title="EU Disclosures - EC 1060/2009" version="1" pcrPublishDate="2012-01-11T12:49:02" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://integration.mysite.com/ServiceSchema/v3">
    - <ns1:PcrOrganization core_org_id="345840">
    <ns1:PcrLinkedTo value="ISSUE" />
    - <ns1:AdditionalInfo>
    <ns1:Info type="AdditionalInfo_QuartelyReport_URL"><br></br>MGH</ns1:Info>
    </ns1:AdditionalInfo>
    - <ns1:Issues>
    - <ns1:Issue id="705230">
    - <ns1:AdditionalInfo>
    <ns1:Info type="R_DATE">Credit Release Date: 09-Apr-2010</ns1:Info>
    <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
    <ns1:Info type="AdditionalInfo_QuartelyReport_URL"><br></br>MGH</ns1:Info>
    </ns1:AdditionalInfo>
    - <ns1:IssueDetail id="114766798">
    - <ns1:AdditionalInfo>
    <ns1:Info type="R_DATE">Credit Release Date: 09-Apr-2010</ns1:Info>
    <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
    <ns1:Info type="AdditionalInfo_QuartelyReport_URL"><br></br>MGH</ns1:Info>
    </ns1:AdditionalInfo>
    </ns1:IssueDetail>
    </ns1:Issue>
    - <ns1:Issue id="727193">
    - <ns1:AdditionalInfo>
    <ns1:Info type="R_DATE">Credit Release Date: 09-Apr-2010</ns1:Info>
    <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
    <ns1:Info type="AdditionalInfo_QuartelyReport_URL"><br></br>MGH</ns1:Info>
    </ns1:AdditionalInfo>
    - <ns1:IssueDetail id="117994574">
    - <ns1:AdditionalInfo>
    <ns1:Info type="R_DATE">Credit Release Date: 09-Apr-2010</ns1:Info>
    <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
    <ns1:Info type="AdditionalInfo_QuartelyReport_URL"><br></br>MGH</ns1:Info>
    </ns1:AdditionalInfo>
    </ns1:IssueDetail>
    </ns1:Issue>
    </ns1:Issues>
    </ns1:PcrOrganization>
    </ns1:PcrDocument>

    I did not include the name space declaration for it is working fine. Really? Then I suppose you must be using a schema-based XMLType column?
    Is it Object-Relational or Binary XML storage?
    You mentioned it is depricated in 11.2, but iam able to run it on 11.2.Deprecated doesn't mean it ceases functioning.
    Any suggestions to covert this to XMLTable/XMLQuery format please..If you read the documentation, it covers this part too ;)
    Example :
    create table tmp_xml of xmltype;
    insert into tmp_xml values(
    xmltype('<ns1:PcrDocument id="PCR-13562" title="EU Disclosures - EC 1060/2009" version="1" pcrPublishDate="2012-01-11T12:49:02" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://integration.mysite.com/ServiceSchema/v3">
      <ns1:PcrRatingDetails>
        <ns1:LeadAnalyst>
          <ns1:FirstName>xxxxx</ns1:FirstName>
          <ns1:MiddleName/>
          <ns1:LastName>xxxxxx</ns1:LastName>
          <ns1:Title>Director</ns1:Title>
          <ns1:Label>Primary Analyst</ns1:Label>
          <ns1:Telephone>xxxxxxxxxxxx</ns1:Telephone>
          <ns1:Email>[email protected]</ns1:Email>
          <ns1:Address>
            <ns1:Line1>Main Tower</ns1:Line1>
            <ns1:Line2>Neue Mainzer Strasse</ns1:Line2>
            <ns1:City>FFT</ns1:City>
            <ns1:State/>
            <ns1:ZipCode>99999</ns1:ZipCode>
            <ns1:Country>Germany</ns1:Country>
          </ns1:Address>
        </ns1:LeadAnalyst>
        <ns1:RatingApprover>
          <ns1:FirstName>Nick</ns1:FirstName>
          <ns1:MiddleName/>
          <ns1:LastName>Mate</ns1:LastName>
        </ns1:RatingApprover>
      </ns1:PcrRatingDetails>
      <ns1:PcrOrganization core_org_id="345840">
        <ns1:PcrLinkedTo value="ISSUE"/>
        <ns1:AdditionalInfo>
          <ns1:Info type="AdditionalInfo_QuartelyReport_URL">
            <br/>
            <A href="http://www.mysite.com/rts/articles/en/us/?articleType=HTML&amp;assetID=1245321070686" target="_blank">MGH</A>
          </ns1:Info>
        </ns1:AdditionalInfo>
        <ns1:Issues>
          <ns1:Issue id="705230">
            <ns1:AdditionalInfo>
              <ns1:Info type="R_DATE">Credit  Release Date: 09-Apr-2010</ns1:Info>
              <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
              <ns1:Info type="AdditionalInfo_QuartelyReport_URL">
                <br/>
                <A href="http://www.mysite.com/rts/articles/en/us/?articleType=HTML&amp;assetID=1245321070686" target="_blank">MGH</A>
              </ns1:Info>
            </ns1:AdditionalInfo>
            <ns1:IssueDetail id="114766798">
              <ns1:AdditionalInfo>
                <ns1:Info type="R_DATE">Credit Release Date: 09-Apr-2010</ns1:Info>
                <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
                <ns1:Info type="AdditionalInfo_QuartelyReport_URL">
                  <br/>
                  <A href="http://www.mysite.com/rts/articles/en/us/?articleType=HTML&amp;assetID=1245321070686" target="_blank">MGH</A>
                </ns1:Info>
              </ns1:AdditionalInfo>
            </ns1:IssueDetail>
          </ns1:Issue>
          <ns1:Issue id="727193">
            <ns1:AdditionalInfo>
              <ns1:Info type="R_DATE">Credit Release Date: 09-Apr-2010</ns1:Info>
              <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
              <ns1:Info type="AdditionalInfo_QuartelyReport_URL">
                <br/>
                <A href="http://www.mysite.com/rts/articles/en/us/?articleType=HTML&amp;assetID=1245321070686" target="_blank">MGH</A>
              </ns1:Info>
            </ns1:AdditionalInfo>
            <ns1:IssueDetail id="117994574">
              <ns1:AdditionalInfo>
                <ns1:Info type="R_DATE">Credit Release Date: 09-Apr-2010</ns1:Info>
                <ns1:Info type="R_REVIEW_DATE">Credit Last Review Date: 12-Oct-2011</ns1:Info>
                <ns1:Info type="AdditionalInfo_QuartelyReport_URL">
                  <br/>
                  <A href="http://www.mysite.com/rts/articles/en/us/?articleType=HTML&amp;assetID=1245321070686" target="_blank">MGH</A>
                </ns1:Info>
              </ns1:AdditionalInfo>
            </ns1:IssueDetail>
          </ns1:Issue>
        </ns1:Issues>
      </ns1:PcrOrganization>
    </ns1:PcrDocument>')
    SQL> set long 10000
    SQL>
    SQL> select x1.analyst
      2       , x1.chair
      3       , x1.core_org_id
      4       , x2.*
      5  from tmp_xml t
      6     , xmltable(
      7         xmlnamespaces(default 'http://integration.mysite.com/ServiceSchema/v3')
      8       , '/PcrDocument'
      9         passing t.object_value
    10         columns analyst     xmltype path 'PcrRatingDetails/LeadAnalyst'
    11               , chair       xmltype path 'PcrRatingDetails/RatingApprover'
    12               , core_org_id number  path 'PcrOrganization/@core_org_id'
    13               , issues      xmltype path 'PcrOrganization/Issues/Issue'
    14       ) x1
    15     , xmltable(
    16         xmlnamespaces(default 'http://integration.mysite.com/ServiceSchema/v3')
    17       , '/Issue'
    18         passing x1.issues
    19         columns issue                 number       path '@id'
    20               , rating_date           varchar2(40) path 'AdditionalInfo/Info[@type="R_DATE"]'
    21               , rating_review_date    varchar2(40) path 'AdditionalInfo/Info[@type="R_REVIEW_DATE"]'
    22               , issue_detail          number       path 'IssueDetail/@id'
    23               , id_rating_date        varchar2(40) path 'IssueDetail/AdditionalInfo/Info[@type="R_DATE"]'
    24               , id_rating_review_date varchar2(40) path 'IssueDetail/AdditionalInfo/Info[@type="R_REVIEW_DATE"]'
    25       ) x2
    26  where x2.issue = 705230
    27  ;
    ANALYST                                                                          CHAIR                                                                            CORE_ORG_ID      ISSUE RATING_DATE                              RATING_REVIEW_DATE                       ISSUE_DETAIL ID_RATING_DATE                           ID_RATING_REVIEW_DATE
    <LeadAnalyst xmlns="http://integration.mysite.com/ServiceSchema/v3">             <RatingApprover xmlns="http://integration.mysite.com/ServiceSchema/v3">               345840     705230 Credit  Release Date: 09-Apr-2010        Credit Last Review Date: 12-Oct-2011        114766798 Credit Release Date: 09-Apr-2010         Credit Last Review Date: 12-Oct-2011
      <FirstName>xxxxx</FirstName>                                                     <FirstName>Nick</FirstName>                                                                                                                                                                                                                  
      <MiddleName/>                                                                    <MiddleName/>                                                                                                                                                                                                                                
      <LastName>xxxxxx</LastName>                                                      <LastName>Mate</LastName>                                                                                                                                                                                                                    
      <Title>Director</Title>                                                        </RatingApprover>                                                                                                                                                                                                                              
      <Label>Primary Analyst</Label>                                                                                                                                                                                                                                                                                                
      <Telephone>xxxxxxxxxxxx</Telephone>                                                                                                                                                                                                                                                                                           
      <Email>[email protected]</Email>                                                                                                                                                                                                                                                                                         
      <Address>                                                                                                                                                                                                                                                                                                                     
        <Line1>Main Tower</Line1>                                                                                                                                                                                                                                                                                                   
        <Line2>Neue Mainzer Strasse</Line2>                                                                                                                                                                                                                                                                                         
        <City>FFT</City>                                                                                                                                                                                                                                                                                                            
        <State/>                                                                                                                                                                                                                                                                                                                    
        <ZipCode>99999</ZipCode>                                                                                                                                                                                                                                                                                                    
        <Country>Germany</Country>                                                                                                                                                                                                                                                                                                  
      </Address>                                                                                                                                                                                                                                                                                                                    
    </LeadAnalyst>                                                                                                                                                                                                                                                                                                                  

  • How to read from xml documents using either sax or dom

    dear all
    i have an xml document and i want to create a procedure to read the data from it .
    is it possible or not? thanks in advance

    Where is the xml document located?
    load it into an XMLTYPE and apply xpath as required.
    SQL> declare
      2    xml xmltype ;
      3  begin
      4    xml := xmltype('<node><value>this is text</value></node>') ;
      5    dbms_output.put_line('value='||xml.extract('/node/value/text()').getStringVal()) ;
      6  end ;
      7  /
    value=this is text
    PL/SQL procedure successfully completed.
    SQL>

  • Extracting Values from XML-Document in pl/sql

    Hello!
    I need to extract the content of the following extract:
    <ns1:OXERPGetArticlesResponse xmlns:ns1="OXERPService">
    <ns1:OXERPGetArticlesResult>
    <ns1:OXERPType>
    <ns1:aResult>
    <ns1:ArrayOfString>
    <ns1:string>OXID</ns1:string>
    <ns1:string>531f91d4ab8bfb24c4d04e473d246d0b</ns1:string>
    </ns1:ArrayOfString>
    <ns1:ArrayOfString>
    <ns1:string>OXARTNUM</ns1:string>
    <ns1:string>0601-85-069</ns1:string>
    </ns1:ArrayOfString>
    <ns1:ArrayOfString>
    <ns1:string>OXPRICE</ns1:string>
    <ns1:string>100.5</ns1:string>
    </ns1:ArrayOfString>
    </ns1:aResult>
    <ns1:blResult>true</ns1:blResult>
    <ns1:sMessage/>
    </ns1:OXERPType>
    <ns1:OXERPType>
    <ns1:aResult>
    <ns1:ArrayOfString>
    <ns1:string>OXID</ns1:string>
    <ns1:string>531a8af7d9a9a5bb53b65a2b9a5356e5</ns1:string>
    </ns1:ArrayOfString>
    <ns1:ArrayOfString>
    <ns1:string>OXARTNUM</ns1:string>
    <ns1:string>0601-85-069-1</ns1:string>
    </ns1:ArrayOfString>
    <ns1:ArrayOfString>
    <ns1:string>OXPRICE</ns1:string>
    <ns1:string>89.9</ns1:string>
    </ns1:ArrayOfString>
    </ns1:aResult>
    <ns1:blResult>true</ns1:blResult>
    <ns1:sMessage/>
    </ns1:OXERPType>
    </ns1:OXERPGetArticlesResult>
    </ns1:OXERPGetArticlesResponse>
    The output should be:
    OXID OXARTNUM OXPRICE
    531f91d4ab8bfb24c4d04e473d246d0b 0601-85-069 100.5
    531a8af7d9a9a5bb53b65a2b9a5356e5 0601-85-069-1 89.9
    The count of rows and columns is variable.
    I want to do this by using xmltype.extract but I found no way to create a loop over the content of the xml document.
    Hopefully someone can help me!
    Regards
    Herbert

    OK, then you should be able to use something like :
    SQL> var xmldoc clob;
    SQL> begin
      2   :xmldoc := '<ns1:OXERPGetArticlesResponse xmlns:ns1="OXERPService">
      3  <ns1:OXERPGetArticlesResult>
      4  <ns1:OXERPType>
      5  <ns1:aResult>
      6  <ns1:ArrayOfString>
      7  <ns1:string>OXID</ns1:string>
      8  <ns1:string>531f91d4ab8bfb24c4d04e473d246d0b</ns1:string>
      9  </ns1:ArrayOfString>
    10  <ns1:ArrayOfString>
    11  <ns1:string>OXARTNUM</ns1:string>
    12  <ns1:string>0601-85-069</ns1:string>
    13  </ns1:ArrayOfString>
    14  <ns1:ArrayOfString>
    15  <ns1:string>OXPRICE</ns1:string>
    16  <ns1:string>100.5</ns1:string>
    17  </ns1:ArrayOfString>
    18  </ns1:aResult>
    19  <ns1:blResult>true</ns1:blResult>
    20  <ns1:sMessage/>
    21  </ns1:OXERPType>
    22  <ns1:OXERPType>
    23  <ns1:aResult>
    24  <ns1:ArrayOfString>
    25  <ns1:string>OXID</ns1:string>
    26  <ns1:string>531a8af7d9a9a5bb53b65a2b9a5356e5</ns1:string>
    27  </ns1:ArrayOfString>
    28  <ns1:ArrayOfString>
    29  <ns1:string>OXARTNUM</ns1:string>
    30  <ns1:string>0601-85-069-1</ns1:string>
    31  </ns1:ArrayOfString>
    32  <ns1:ArrayOfString>
    33  <ns1:string>OXPRICE</ns1:string>
    34  <ns1:string>89.9</ns1:string>
    35  </ns1:ArrayOfString>
    36  </ns1:aResult>
    37  <ns1:blResult>true</ns1:blResult>
    38  <ns1:sMessage/>
    39  </ns1:OXERPType>
    40  </ns1:OXERPGetArticlesResult>
    41  </ns1:OXERPGetArticlesResponse>';
    42  end;
    43  /
    Procédure PL/SQL terminée avec succès.
    SQL> SELECT x1.rec_id
      2       , x2.col_name
      3       , x2.col_value
      4  FROM XMLTable(
      5        XMLNamespaces('OXERPService' as "ns1"),
      6        '/ns1:OXERPGetArticlesResponse/ns1:OXERPGetArticlesResult/ns1:OXERPType/ns1:aResult'
      7        passing xmltype(:xmldoc)
      8        columns rec_id for ordinality
      9              , rec_xml xmltype path 'ns1:ArrayOfString'
    10       ) x1,
    11       XMLTable(
    12        XMLNamespaces('OXERPService' as "ns1"),'/ns1:ArrayOfString'
    13        passing x1.rec_xml
    14        columns col_name  varchar2(30) path 'ns1:string[1]'
    15              , col_value varchar2(30) path 'ns1:string[2]'
    16       ) x2
    17  ;
        REC_ID COL_NAME                       COL_VALUE
             1 OXID                           531f91d4ab8bfb24c4d04e473d246d
             1 OXARTNUM                       0601-85-069
             1 OXPRICE                        100.5
             2 OXID                           531a8af7d9a9a5bb53b65a2b9a5356
             2 OXARTNUM                       0601-85-069-1
             2 OXPRICE                        89.9
    6 ligne(s) sélectionnée(s).You mentioned that the number of column(s) is not known in advance. That's gonna be a problem to present the data column-wise.
    Version 11g has the PIVOT feature, but still you have to know how many columns there will be in the result set.
    How are you going to use the data after extraction?
    Maybe we could advise some other techniques more relevant for your requirement.

  • Create DTD from XML document

    Hello,
    I have a little problem creating a DTD from an XML document. The XML document looks the following:
    <data name="data1">
    <value id="abc" name="value1" />
    <value id="def" name="value2" />
    <value id="ghi" name="value3" />
    </data>
    <data name="data2">
    <value id="123" name="valueA" />
    <value id="456" name="valueB" />
    <value id="789" name="valueC" />
    </data>
    The problem concerns the attribute list of the value element,
    on the one hand I could create a DTD like this:
    <!ATTLIST value id CDATA #REQUIRED
    name CDATA #REQUIRED
    >
    On the other hand I could do it like this:
    <!ATTLIST value id (abc|def|ghi|123|456|789) #REQUIRED
    name (value1|value2|value3|valueA|valueB|valueC)
    #REQUIRED
    >
    Now I don't know what's the right way. I would be glad if anybody could give me support for my problem.
    Thank you very much,
    Findus

    No...this is not the solution for my problem. The first problem with the code you posted is that I can create a valid XML document like this:
    <data name="data2">
    <value id="123" name="value1" />
    <value id="456" name="value2" />
    <value id="789" name="value3" />
    </data>
    (Please compare to the lines below in order to recognize the difference)
    I want the user to create only documents like this:
    <data name="data2">
    <value id="123" name="valueA" />
    <value id="456" name="valueB" />
    <value id="789" name="valueC" />
    </data>
    So I want to define special attribute pairs in my DTD, like ' the value attribute id="123" works only with the attribute name="valueA"! '
    Is it possible to do so ?
    Thanx a lot,
    Findus

  • Could not retrieve attributes from XML document loaded in JDOM

    Hi All,
    I am having difficulty reading and parsing the following XML City.xml document using Saxon parser and XPath:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ /EN" "http://www. w3.org/TR/ xhtml1/DTD/ xhtml1-transitio nal.dtd">
    <html xmlns="http: //www.w3. org/1999/ xhtml">
        <head>
            <meta http-equiv=" Content-Type" content="text/ html; charset=UTF- 8" />
        </head>
        <body>
            <div id="content">
                <table class="sresults">
                    <tr>
                        <td>
                            <a href="http:/ /www.abc.com/areas" title=" Hollywood , CA "> hollywood </a>
                        </td>
                        <td>
                            <a href="http:/ /www.abc.com/areas" title=" San Jose , CA "> san jose </a>
                        </td>
                        <td>
                            <a href="http:/ /www.abc.com/areas" title=" San Francisco , CA "> san francisco </a>
                        </td>
                        <td>
                            <a href="http:/ /www.abc.com/areas" title=" San Diego , CA "> San diego </a>
                        </td>
                    </tr>
            </body>
    </html> Below is the code snippets that illustrates how I tried to retrieve the attribute title of <a>:
    1. BufferedReader incomingbrXml = new BufferedReader(new FileReader("C:\City.xml"));
    2. SAXBuilder saxBuilder = new SAXBuilder(false);
    3. Document jdomXmlDocument = saxBuilder.build(incomingbrXml);4. String city_content = null;
    5. XPath cityXPath = XPath.newInstance("/ns:html/ns:body/ns:div[@id='content']/ns:table[@class='sresults']/ns:tr/ns:td/ns:a/@title");
    6. java.util.List cityList = cityXPath.selectNodes(jdomXmlDocument);
    7. Iterator city_iterator = cityList.iterator();
    8. while (city_iterator.hasNext()) {
    9.     city_content = ((org.jdom.Attribute)city_iterator.next()).getValue();
    10.   if (city_content.length() != 0) {
    11.       System.out.println("Area Url:" + area_content.toString()); }
    12. } I would like to get the following output:
    Hollywood , CA
    San Jose , CA
    San Francisco , CA
    San Diego , CA
    Instead, the jdomXmlDocument is made up of only the first few lines of City.xml and nothing on the body when debugging in Netbeans and nothing in cityList. I am running this program online so there would not be an issue with entity resolver that took place on line 2.
    I am running JDK 1.6.0_17, Netbeans 6.7, JDOM 1.1, Saxon9.1 on Windows XP platform.
    Any assistance would be appreciated.
    Thanks in advance,
    Jack.

    Hi,
    Correction to line 11 - System.out.println("City title:" + city_content.toString()); instead.
    Thanks,
    Jack

  • Replacing special characters from xml document/text inside element

    Hi
    Is there any way to replace the xml codes to special characters inside an entire xml document/ for a text in element.
    I want to get the xml codes to get replaced to respective special character(for any special character)
    Please see the sample xml xml element below
    <Details>Advance is applicable only for &lt; 1000. This is mentioned in Seller&apos;s document</Details>
    Thanks in advance .. any help will be highly appreciated.

    So, just to be sure I understand correctly, you want this :
    <Details>Advance is applicable only for &lt; 1000. This is mentioned in Seller&apos;s document</Details>
    to be converted to :
    <Details>Advance is applicable only for < 1000. This is mentioned in Seller's document</Details>
    If so, I'll say again : the resulting XML document will be invalid.
    Extensible Markup Language (XML) 1.0 (Fifth Edition)
    The ampersand character (&) and the left angle bracket (<) MUST NOT appear in their literal form, except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section. If they are needed elsewhere, they MUST be escaped using either numeric character references or the strings " &amp; " and " &lt; " respectively. The right angle bracket (>) may be represented using the string " &gt; ", and MUST, for compatibility, be escaped using either " &gt; " or a character reference when it appears in the string " ]]> " in content, when that string is not marking the end of a CDATA section.
    Ask whoever "they" are why they would want to work with not wellformed XML.

  • Linking from XML Document

    Hi,
    Attached is code from my xml file. This feeds a flash movie
    template. I want visitors to be able to click on an image which
    then takes them to another page to see a slideshow.
    Any help will be greatly appreciated!
    Thanks.

    Hi,
    I am not a XSLT expert but Tobias wrote some nice blogs about it. Read them here:
    /people/tobias.trapp/blog
    You might want to start with this one:
    /people/tobias.trapp/blog/2005/05/04/xml-processing-in-abap-part-1
    cheers
    Thomas

  • Sqlldr is loading only 1st record from xml document

    Hi,
    I am trying to load XML doc with multiple records using sql*loader.
    I have registered my XSD perfectly.
    This is my control file
    LOAD DATA
    INFILE *
    INTO TABLE Orders APPEND
    XMLType(xmldata)
    FIELDS(
         xmldata LOBFILE (CONSTANT FULDTL_2.xml)
    TERMINATED BY '???')
    BEGINDATA
    FULDTL_2.xml
    -- Here, what I have to give for TERMINATED BY '???'
    My xml doc
    <Order ID="146120486" Status="CL" Comments="Shipped On 08/05/2008"/>
    <Order ID="143417590" Status="CL" Comments="Handset/Device has been received at NRC" ShipDate=""/>
    sqlldr is loading only 1st record from the file.
    How can I make it to load all the records from my xml doc.
    Thanks in advance.

    thanks for both the replies above - essentially the same correct solution.
    something worth noting now that I've written and tested both a SAX solution and a DOM solution is that there is a significant (4 x) time penalty using SAX.
    I considering dividing the vector I am storing/recovering into chunks and saving each chunk separately using DOM to speed things up...
    any thoughts on this approach?

  • Extracting the input from xml document in BPEL

    hi,
    I have a simple JSP which invokes the "101.HelloWorld" provided with the samples.
    The source code for the JSP is as follows:
    <%@page import="com.oracle.bpel.client.Locator" %>
    <%@page import="com.oracle.bpel.client.NormalizedMessage" %>
    <%@page import="com.oracle.bpel.client.delivery.IDeliveryService" %>
    <%@page import="java.util.Hashtable" %>
    <%@page import="javax.naming.Context" %>
    <%@page import="java.util.Map" %>
    <%@page import="org.w3c.dom.Element" %>
    <html>
    <head>
    <title>Invoke HelloWorld</title>
    </head>
    <body>
    <%
        Hashtable jndi = null;
        jndi = new Hashtable(); 
        jndi.put(Context.PROVIDER_URL, "opmn:ormi://BTP6ND09:6003:home/orabpel");
        jndi.put(Context.INITIAL_CONTEXT_FACTORY,"com.evermind.server.rmi.RMIInitialContextFactory");
        jndi.put(Context.SECURITY_PRINCIPAL, "oc4jadmin");
        jndi.put(Context.SECURITY_CREDENTIALS, "welcome1");
        jndi.put("dedicated.connection", "true");
        jndi.put("dedicated.rmicontext","true");
        String name = request.getParameter("name");
        if(name == null)
            name = "BPEL";
        String xml = "<name xmlns=\"http://btp6nd09:8888/BPELConsole/default/HelloWorld\">" + name + "</name>";
        Locator locator = new Locator("default","bpel",jndi);
        IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
        NormalizedMessage nm = new NormalizedMessage( );
        nm.addPart("payload" , xml );
        deliveryService.post("HelloWorld", "initiate", nm);
        out.println( "BPELProcess  HelloWorld initiated!" );
    %>
    Please refer to the
    BPEL Console
    to see the status of the initiated HelloWorld BPEL Process.
    </body>
    </html>Since the input goes as an xml to the Receive activity, i am not knowing how to extract the "name" element from it in the assign activity. Which "BPEL XPath Extension Function" should i use to extract the same?
    Message was edited by:
    user578981
    Message was edited by:
    user578981

    Hi,
    can you please format your input?
    Otherwise, no one will look into your question or problem.... ;-)

  • Extracting attributes from XML document using plsql

    Hello,
    I have successfully written a plsql procedure that has been
    using Xpath to extract the element values from an XML doument:
    i.e.
    l_xpath := '/Form_Data/Person_Details/Initials';
    l_DomNodeList := xslprocessor.SelectNodes(l_RootNode, l_xpath);
    l_DomNode := xmldom.item(l_DomNodeList,0); -- first Element
    l_DomNode := xmldom.getfirstchild(l_DomNode);
    l_id_number := xmldom.getNodeValue(l_DomNode);
    However the data (Initials) I wish to extract is now stored as
    attributes within the Person_Details element and I was wondering
    how I would go about explicitly extracting the attributes values!
    I have not been able to find any examples, although I have been
    pointed in the direction of xmldom.getattribute without any
    success!
    Any help, or code examples greatly appreciated,
    - Mark...

    example:-
    xpath.VALUEOF(i_doc,v_PricingPath||'@LockIndicator');

  • From XML To Query

    Hi,
    This is My problem:
    I receive datas from an xml Feed and I always worked in this
    way:
    <cftry>
    <!--- fetch data from web service --->
    <cfhttp url="
    http://www.............
    method="get" charset="utf-8"/>
    <cfset xmldata = cfhttp.fileContent>
    <cftry>
    <!--- extract data from XML document and convert to query
    --->
    <cfset lstColumns =
    "KH,NH,KC,NC,KD,ND,KS,NS,KL,NL,KZ,NZ,LR"/>
    <cfset q2 = queryNew(lstColumns)/>
    <!--- <cfif isXml(cfhttp.fileContent)> avialable in
    CF7 only --->
    <cfset xmlObject = xmlParse(xmldata)/>
    <cfloop index="i" from="1"
    to="#arrayLen(xmlObject["ArrayOfHotelRoom"].xmlChildren)#">
    <cfset queryAddRow(q2,1)/>
    <cfloop index="ii" list="#lstColumns#">
    <cfset
    querySetCell(q2,ii,xmlObject["ArrayOfHotelRoom"].xmlChildren
    [ii].xmlText)/>
    </cfloop>
    </cfloop>
    <!--- </cfif> --->
    <cfcatch type="any"> <!--- any errors return empty
    result set --->
    <cfset q2 = queryNew(lstColumns)/>
    </cfcatch>
    </cftry>
    <cfcatch type="any">
    <cfoutput>There has been an internal problem. Please
    try again later</cfoutput>
    <cfexit>
    </cfcatch>
    </cftry>
    <!--- use QoQ to filter by hotel name --->
    <cfquery name="q" dbtype="query">
    select * from q2
    where SH = 'A' <!--- only show available hotels --->
    </cfquery>
    NOW THE PROBLEM IS THAT I NEED NOW TO IMPROVE MY SYSTEM USING
    A NEW VERSION OF THE XML CATALOGUE THAT NOW INCLUDE XML.CHILDREN:
    THE NEW XML:
    <?xml version="1.0" encoding="utf-8"?>
    <ArrayOfHotelRoom xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance"
    xmlns="
    http://tempuri.org/xml/xmlService">
    <HotelRoom>
    <KH>717</KH>
    <NH>Acanto Suites & Lounge</NH>
    <KC>PDC</KC>
    <NC>Playa del Carmen</NC>
    <KD>16</KD>
    <ND>Playa del Carmen</ND>
    <KS>7E</KS>
    <NS>Special Category</NS>
    <KL>CENT</KL>
    <NL>City</NL>
    <KZ>1</KZ>
    <NZ>The Yucatan Peninsula</NZ>
    <LR>132.5000</LR>
    <Rooms>
    <RoomType>
    <KR>VLLBR1</KR>
    <NR>One Bedroom Villa</NR>
    <MP>RO</MP>
    <RR>132.5</RR>
    <IP>0</IP>
    <IL>0</IL>
    <IN>0</IN>
    <IF>0</IF>
    <PH>0</PH>
    <SH>A</SH>
    </RoomType>
    </Rooms>
    </HotelRoom>
    AS YOU SEE AFTER "LR" NOW I FIND OTHERS CHILDREN AND I DO
    NOT HOW TO REDUCE MY NEW XML TO QUERY
    Thank You
    Andrea

    Hi Charlie,
    thanks for your fast answer. I try to figure out what's are
    my doubts and need:
    1) Yes it must to be a query because i need to filter data to
    be shown in many different outputs.
    2) I understand that it should be possible to create
    something like 2 database table :
    one for the Hotel and
    one for Rooms with all the subitems( I confirm you that there
    will be situations with more RoomType Item for each Rooms. My doubt
    now is how I will be able to manage the query joining the 2 tables
    when I miss a common date to show in the statement WHERE ( Example
    : WHERE Hoteltable.#KH#( hotel ID ) = RoomsTable.#Here I will miss
    the compare data that in the second table is not provided by the
    xml#.
    How will I be able to manage the query??????
    I think this is our way but I am really lost at this level.
    Of course the solutions with only one table with multiple
    rows for each rooms type will create me problems in outputs results
    . I will have results where the selection will not be the hotel but
    the rooms type and will be inconvenient to receive dinamically 5
    times the same hotel with the different rooms type details.
    What I need is to receive each hotel only once with all the
    roomstype details inside.
    Thanks for your help
    Andrea

  • How do I retrieve elements in a xml document ?

    I would like to know how to retrieve elements from xml document ?
    I have created a document already, but how do I proceed from there ?
    Also, how do I access the values inside, the attributes and value ?
    Thank you.

    parse the xml file in node wise using compare criteria according to programmer choice u can able to retrieve the elements which u want promptly

  • RFC problem: could not get functionname from XML requst (sic)

    I'm developing an interface that attempts to call a receiver RFC on an SAP 4.6c system.  It's a very small simple interface, and it's all working until it tries to call the RFC.  The error is
    Exception caught by adapter framework: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: could not get functionname from XML requst: com.sap.aii.af.rfc.RfcAdapterException: failed to read funtionname from XML document: missing namespace declara
    I've created an RFC channel, which is green in the adapter monitoring.  The RFC imports without a problem, and appears in my interface mapping.  My mapping program converts to the RFC message type (as evidenced in sxmb_moni.  I have a receiver agreement referencing the interface mapping, which must be working as the mapping is called. 
    Could anyone point me to what else I could check?  I saw a post about the same error message, where the respondent found something in the logs which helped them  Could you expand on what you found, and in which log please?  Any pointers as to which logging options I could switch on and check would be gratefully received.
    Regards
    Alan Graham

    Thanks for the responses.
    I set up a communications channel of type RFC, which is
    showing green in the adapter monitor.  If I deliberately
    break it, eg by changing the password, the adapter shows
    as red in the monitor.  I assume therefore that the
    adaptor settings are correct.
    The XML going to the adapter looks correct AFAIK.  My problem is that I don't know enough about the requied XML to know if what I'm seeing in the logs is sufficient.  In SXMB_MONI, in the 'call adapter' section of a failed message, the outbound binding includes
    <SAP:ToInterfaceNamespace>urn:sap-com:document:sap:rfc:functions</SAP:ToInterfaceNamespace>/code]
    Also, the interface determination SOAP header, in the MAIN section includes
    [code]<SAP:Receiver>
      <SAP:Party agency="" scheme="" />
      <SAP:Service>D04</SAP:Service>
      <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">Z_MPU_3PSCE_FREIGHT_UPLOAD</SAP:Interface>
      </SAP:Receiver>
    These are the correct values for the RFC name and the namespace, AFAIK.
    I'm using an interface mapping (which uses and ABAP class as the mapping program) which references the interface of the RFC.  The logs tell me this works, ie, the class is called and the resulting XML appears in the payload of the response.
    Alan

Maybe you are looking for