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');

Similar Messages

  • 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

  • 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 can i extract attributes from XML-file

    Hi!
    I want to extract XML-files.
    And the most tags are no problem,but how can i extract attributes?
    Here is a part from the XML-Schema:
    <xs:complexType name="ATT_LIST">
              <xs:sequence>
                   <xs:element name="ATTRIB" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element name="VALUE"/>
                             </xs:sequence>
                             <xs:attribute name="ATTNAM" use="required"/>
                        </xs:complexType>
                   </xs:element>
              </xs:sequence>
         </xs:complexType>
    Thanks for help.
    With best regards.
    Nicole

    Hi!
    If i delete one '/' i get the error message:
    data can't be found'
    This is my xml-file:
    <?xml version="1.0" encoding="UTF-8"?>
    <INSOBJ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sv6:8080/sys/schemas/SCOTT/sv6:8080/public/mydocs/inspection_pda_schema.xsd">
         <INSP_PDA>
              <SYSID>900000438</SYSID>
              <INSPECTOR/>
              <INSDAT>20001223</INSDAT>
              <INSOBJ_TYP>MSP-Mast</INSOBJ_TYP>
              <INSOBJ_ID1>BAM / Bad Aussee / Bad Mitterndorf/Grundlsee</INSOBJ_ID1>
              <INSOBJ_ID2>MITTERNDORF 2 - M 259</INSOBJ_ID2>
              <INSOBJ_ID3>239</INSOBJ_ID3>
              <INSOBJ_NAME>259</INSOBJ_NAME>
              <PDA_PORTION>0000000391</PDA_PORTION>
              <GESQUALITAET/>
              <AUSFALLSEINSCH/>
              <ANMERKUNGEN/>
              <LAGE_NORD>48,2281993</LAGE_NORD>
              <LAGE_OST>14,2394658</LAGE_OST>
              <HOEHE/>
              <GPS_STATUS/>
              <KOORD_SYSTEM/>
              <KOORD_EINHEIT/>
              <PLZ/>
              <ORT/>
              <STR_ORTSTEIL/>
              <NUMMER/>
              <BEZEICHNUNG/>
              <GRUNDBESITZER/>
              <TELENR/>
              <ERREICHBARKEIT/>
              <ATT_LIST>
                   <ATTRIB ATTNAM="BAUWEISE">
                        <VALUE>E-Mast</VALUE>
                   </ATTRIB>
                   <ATTRIB ATTNAM="HOLZART">
                        <VALUE>KIEFER</VALUE>
                   </ATTRIB>
              </ATT_LIST>
              <MZ_LIST>
                   <MAS_ZU MZ_NAM="AUSHOLZEN">
                        <VALUE>J</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM>N</DONE_AM>
                        <DONE_VOM/>
                        <URSACHE>2</URSACHE>
                        <DRINGLICH>2</DRINGLICH>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
                   <MAS_ZU MZ_NAM="ALLGEMEIN-ANMERKUNG">
                        <VALUE>2 Isolatoren</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM/>
                        <DONE_VOM/>
                        <URSACHE>2</URSACHE>
                        <DRINGLICH/>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
                   <MAS_ZU MZ_NAM="Stange erdfaul/hohl">
                        <VALUE>J</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM/>
                        <DONE_VOM/>
                        <URSACHE/>
                        <DRINGLICH/>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
                   <MAS_ZU MZ_NAM="Masttyp nicht normgerecht">
                        <VALUE>J</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM/>
                        <DONE_VOM/>
                        <URSACHE/>
                        <DRINGLICH/>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
              </MZ_LIST>
         </INSP_PDA>
         <INSP_PDA>
              <SYSID>900000437</SYSID>
              <INSPECTOR/>
              <INSDAT>20001223</INSDAT>
              <INSOBJ_TYP>MSP-Mast</INSOBJ_TYP>
              <INSOBJ_ID1>BAM / Bad Aussee / Bad Mitterndorf/Grundlsee</INSOBJ_ID1>
              <INSOBJ_ID2>MITTERNDORF 2 - M 259</INSOBJ_ID2>
              <INSOBJ_ID3>239</INSOBJ_ID3>
              <INSOBJ_NAME>259</INSOBJ_NAME>
              <PDA_PORTION>0000000391</PDA_PORTION>
              <GESQUALITAET/>
              <AUSFALLSEINSCH/>
              <ANMERKUNGEN/>
              <LAGE_NORD>48,2281993</LAGE_NORD>
              <LAGE_OST>14,2394658</LAGE_OST>
              <HOEHE/>
              <GPS_STATUS/>
              <KOORD_SYSTEM/>
              <KOORD_EINHEIT/>
              <PLZ/>
              <ORT/>
              <STR_ORTSTEIL/>
              <NUMMER/>
              <BEZEICHNUNG/>
              <GRUNDBESITZER/>
              <TELENR/>
              <ERREICHBARKEIT/>
              <ATT_LIST>
                   <ATTRIB ATTNAM="BAUWEISE">
                        <VALUE>E-Mast</VALUE>
                   </ATTRIB>
                   <ATTRIB ATTNAM="HOLZART">
                        <VALUE>KIEFER</VALUE>
                   </ATTRIB>
              </ATT_LIST>
              <MZ_LIST>
                   <MAS_ZU MZ_NAM="AUSHOLZEN">
                        <VALUE>J</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM>N</DONE_AM>
                        <DONE_VOM/>
                        <URSACHE>2</URSACHE>
                        <DRINGLICH>2</DRINGLICH>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
                   <MAS_ZU MZ_NAM="ALLGEMEIN-ANMERKUNG">
                        <VALUE>2 Isolatoren</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM/>
                        <DONE_VOM/>
                        <URSACHE>2</URSACHE>
                        <DRINGLICH/>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
                   <MAS_ZU MZ_NAM="Stange erdfaul/hohl">
                        <VALUE>J</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM/>
                        <DONE_VOM/>
                        <URSACHE/>
                        <DRINGLICH/>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
                   <MAS_ZU MZ_NAM="Masttyp nicht normgerecht">
                        <VALUE>J</VALUE>
                        <BEMERKUNG/>
                        <INSP_AM/>
                        <INSP_VON/>
                        <DONE_AM/>
                        <DONE_VOM/>
                        <URSACHE/>
                        <DRINGLICH/>
                        <ZIEL_DAT/>
                        <MZ_PARAM_LIST/>
                   </MAS_ZU>
              </MZ_LIST>
         </INSP_PDA>
    </INSOBJ>
    Thanks for help.
    With best regards
    Nicole

  • 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.

  • Loading/breaking large files containing multiple XML documents using plsql

    Hi I have a requirement where in the client sends the multiple xml payloads/documents in a single text file. I need to load that into the xmltype varialbe. How to do this?
    I'm able to load the entire document into a clob object, here.. all the xml payloads are loaded into a single row. When I try to access this I get a error
    ORA-31001: Invalid resource handle or path name "/MobileInventoryResponse.dtd"
    ORA-06512: at "SYS.XMLTYPE", line 254
    ORA-06512: at line 1
    This error is due to the dtd present in the xml document : <!DOCTYPE MobileInventoryResponse SYSTEM "MobileInventoryResponse.dtd">
    But if I load the data into a clob after removing the doctype reference then I get the following error. Here to mulitple xml documents are loaded into a single clob row.
    ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00209: PI names starting with XML are reserved
    Error at line 81
    ORA-06512: at "SYS.XMLTYPE", line 254
    ORA-06512: at line 1
    When try to access this by using select xmltype(x) from t
    where x is column type of clob.
    Please let me know any method or type loading the multiple xml documents by using plsql. Only plsql method. There is a way by using SAX Loader. But can it be used in plsql or its a java method of loading.
    Regards,
    Naveen
    Edited by: MAN on Oct 18, 2008 9:21 PM

    sorry for that...
    There was enter character between some tags. From there I'm not receiving that particular error.
    Now what I get is
    ORA-31001: Invalid resource handle or path name "/MobileInventoryResponse.dtd"
    ORA-06512: at "SYS.XMLTYPE", line 254
    ORA-06512: at line 1
    ORA-06512: at line 39
    This is because there is a doctype at the start of the xml payload.
    But if there is no <!DOCTYPE MobileInventoryResponse SYSTEM "MobileInventoryResponse.dtd"> this statement then it works fine.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE MobileInventoryResponse SYSTEM "MobileInventoryResponse.dtd">
    <MobileInventoryResponse>
    And this exercise I'm doing in my Windows xp loaded operating system with a local instance of oracle ... Do i need to do any other setting.
    Along with that I followed your method mentioned @ Re: LPX-00209: PI names starting with XML are reserved
    ignore:=dbms_xdb.createResource('/MobileInventoryResponse.dtd',bfilename('XML_DIR','MobileInventoryResponse.dtd'));
    And I'm not getting how it will refer the this resource.
    this above partilcular statement . should it be executed when ever we insert into the table ? But in the dtd there is no word saying "MobileInventoryResponse".
    got this error.
    ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00104: Warning: element "MobileInventoryResponse" is not declared in the DTD
    Error at line 1
    ORA-06512: at "SYS.XMLTYPE", line 254
    ORA-06512: at line 1
    ORA-06512: at line 21
    This is how I'm doing in the block
    DECLARE
    l_filehandle UTL_FILE.FILE_TYPE;
    l_filename VARCHAR2(50):='test.xml';
    l_rec_data VARCHAR2(500);
    l_rec_trim_data VARCHAR2(500);
    l_rec_trim_upper VARCHAR2(500);
    l_rec_full_data CLOB;
    ignore boolean;
    BEGIN
    l_filehandle := UTL_FILE.FOPEN('XML_DIR',l_filename,'R');
    --dbms_xdb.deleteResource('/MobileInventoryResponse.dtd',dbms_xdb.DELETE_RESOURCE   );
    LOOP
    ignore:=dbms_xdb.createResource('/MobileInventoryResponse.dtd',bfilename('XML_DIR','MobileInventoryResponse.dtd'));
    commit;
    UTL_FILE.GET_LINE(l_filehandle, l_rec_data);
    --dbms_output.put_line('l_rec_data : '|| l_rec_data);
    -- Trim the record to remove spaces
    l_rec_trim_data := TRIM(l_rec_data);
    l_rec_trim_upper := UPPER(l_rec_trim_data);
    l_rec_full_data := l_rec_full_data||l_rec_data;
    IF l_rec_trim_upper LIKE '</MOBILEINVENTORYRESPONSE>' THEN
    dbms_output.put_line('l_rec_full_data : '||l_rec_full_data);
    INSERT INTO library_xml VALUES(xmltype(l_rec_full_data));
    l_rec_full_data:=NULL;
    END IF;
    dbms_xdb.deleteResource('/MobileInventoryResponse.dtd',dbms_xdb.DELETE_RESOURCE );
    commit;
    END LOOP;
    UTL_FILE.FCLOSE(l_filehandle);
    COMMIT;
    --exception just for testing purpose
    EXCEPTION
    WHEN no_data_found THEN
    NULL;
    commit;
    END;
    Edited by: MAN on Oct 21, 2008 2:47 AM

  • 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 data from XML

    Im fairly new to XML & web services so bear with me please.
    Im trying to extract data from XML documents where the structure/element names are unknown.
    The condition for extracting data is if keyword matches some data content.
    Im using Java and the DOM API with xcerces and I've managed to parse the XML file, what I need to do next is to traverse the data content checking against keywords and if a keyword matches then to strip the tags and save the data locally ?
    Ive trawled through all the documentaion but as theres so many different methods Im somewhat unsuare which is the best way to proceed.
    thanks

    tough question, i would suggest looking at jdom as solution for you, because it is a relatively simple one to use for searching through a dom. aside from that, its probably up to you what sort of logic you want to use.

  • How to extract the actual XML document from soap message?

    My problem is " how to extract the actual XML document from soap message? "
    i just want to extract the attachment i.e. (pure XML document without any soap header or envolope).
    i could be ver thank full if u could solve my problem.
    [email protected]

    Hi,
    This is some skeleton code for extracting an attachment from a SOAPMessage.
    import javax.activation.DataHandler.;
    import javax.xml.soap.*;
    import javax.xml.message.*;
    Iterator allAttachments = message.getAttachments();
    AttachmentPart ap1 = null;
    while(allAttachments.hasNext()){
    ap1 = (AttachmentPart)allAttachments.next();
    //Check that the attachment is correct one. By looking at its mime headers
    //Convert the attachment part into its DOM representation:
    if(ap1.getContentType() == "text/xml"){
    //Use the activation dataHandler class to extract the content, then create a StreamSource from
    //the content.
    DataHandler attachmentContent = ap1.getDataHandler();
    StreamSource attachmentStream = new StreamSource(attachmentContent.getInputStream());
    DOMResult domAttachment = getDOMResult(attachmentStream);
    domAttachment holds an xml representation of the attachment.
    Hope this helps.

  • How to remove elements/attributes from XML using Xpath in XSLT ??

    Hello ,
    Is there anyway or method of Xpath from which I can delete the elements and attributes from XML at runtime ??
    Like I have such XML and I have to remove per attribute highlighted below
    <person per="and">
    <e:emp a="ir" b="ad" >
    </e:emp>
    </person>
    And want a result like this
    <person>
    <e:emp a="ir" b="ad" >
    </e:emp>
    </person>
    Thanks

    To achieve this you can use the bpelx:remove function: http://download.oracle.com/docs/cd/E12483_01/integrate.1013/b28981/manipdoc.htm#CIHJBJFD
    your assign will look like:
    <bpel:assign>
    <bpelx:remove>
    <target variable="person" query="/person/@per" />
    </bpelx:remove>
    </bpel:assign>
    Regards,
    Melvin

  • Error while loading an XML document using a structured application

    Hi,
    I try to load an XML document using a structured application defined in the default structapps.fm
    My code is shown down, extracted from the FDK API code sample.
    Problem, I always have the same message :
    "Cannot find the file named e:\xml\AdobeFrameMaker10\file. Make sure that the file exists. "
    Where "e:\xml\AdobeFrameMaker10\" is my install directory.
    So I assume that frame try to find the structapps.fm file but does not find it.
    What else can it be ?
    Does anyone knowns how to achieve this simple task using extendScript ?
    Thanks for any comments, Pierre
    function openXMLFile(myLastFile) {
        var filename = myLastFile.openDlg("Choose XML file ...", "*.xml", false);
        if (filename != null) {
            /* Get default open properties. Return if it can’t be allocated. */
            var params = GetOpenDefaultParams();
            /* Set properties to open an XML document*/
            /*Specify XML as file type to open*/
            var i = GetPropIndex(params, Constants.FS_OpenAsType)
            params[i].propVal.ival = Constants.FV_TYPE_XML;
            /* Specify the XML application to be used when opening the document.*/
            i = GetPropIndex(params, Constants.FS_StructuredOpenApplication)
            params[i].propVal.sval = "myApp";
            i = GetPropIndex(params, Constants.FS_FileIsOldVersion)
            params[i].propVal.ival = Constants.FV_DoOK
            i = GetPropIndex(params, Constants.FS_FontNotFoundInDoc)
            params[i].propVal.ival = Constants.FV_DoOK
            i = GetPropIndex(params, Constants.FS_FileIsInUse)
            params[i].propVal.ival = Constants.FV_DoCancel
            i = GetPropIndex(params, Constants.FS_AlertUserAboutFailure)
            params[i].propVal.ival = Constants.FV_DoCancel
            /*The structapps.fm file containing the specified application must have
            already been read. The default structapps.fm file is read when FrameMaker is
            opened so this shouldn't be a problem if the application to be used is
            listed in the structapps.fm file.*/
            var retParm = new PropVals()
            var fileObj = Open(filename, params, retParm);
            return fileObj
        } else {
            return null;

    Pierre,
    Depending on the object "myLastFile", the method openDlg might not even exist (if the myLastFile object is not a File object, for instance). And I do not see any need for the myLastFile anyhow, as you are presenting a dialog to select a file to open. I recommend using the global ChooseFile( ) method instead. This will give you a filename as string in full path notation, or null when no file was selected in the dialog. I am not sure what your ExtendScript documentation states about the return value for ChooseFile, but if that differs from what I am telling you here, the documentation is wrong. So, if you replace the first lines of your code with the following it should work:
    function openXMLFile ( ) {
        var filename = ChooseFile ( "Choose XML file ...", "", "*.xml", Constants.FV_ChooseSelect );
    While writing this, I see that Russ has already given you the same advice. Use the symbolic constant value I indicated to use the ChooseFile dialog to select a single file (it can also be used to select a directory or open a file - but you want to control the opening process yourself). Note that this method allows you to set a start directory for the dialog (second parameter). The ESTK autocompletion also gives you a fifth parameter "helplink" which is undocumented and can safely be ignored.
    Good luck
    Jang

  • Extract data from xml file and insert into another exiting xml fil

    hello,
    i am searching extract data from xml file and insert into another exiting xml file by a java program. I understood it is easy to extract data from a xml file, and how ever without creating another xml file. We want to insert the extracted data into another exiting xml file. Suggestions?
    Regards,
    Zhuozhi

    If the files are small, you can load the target file in a DOM document, insert the data from the source file and persist the DOM.
    If the files are large, you probably want to use a StAX or SAX.

  • How to extract data from XML file with JavaScript

    HI All
    I am new to this group.
    Can anybody help me regarding XML.
    I want to know How to extract data from XML file with JavaScript.
    And also how to use API for XML
    regards
    Nagaraju

    This is a Java forum.
    JavaScript is something entirely different than Java, even though the names are similar.
    Try another website with forums about JavaScript.
    For example here: http://www.webdeveloper.com/forum/forumdisplay.php?s=&forumid=3

  • Hi, extract data from xml file and insert into another exiting xml file

    i am searching code to extract data from xml file and insert into another exiting xml file by a java program. I understood it is easy to extract data from a xml file, and how ever without creating another xml file. We want to insert the extracted data into another exiting xml file. Suggestions?
    1st xml file which has two lines(text1.xml)
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xs:PrintDataRequest xmlns:xs="http://com.unisys.com/Anid"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://com.unisys.com/Anid file:ANIDWS.xsd">
    <xs:Person>
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://com.unisys.com/Anid file:ANIDWS.xsd">
    These two lines has to be inserted in the existing another xml(text 2.xml) file(at line 3 and 4)
    Regards,
    bubbly

    Jadz_Core wrote:
    RandomAccessFile? If you know where you want to insert it.Are you sure about this? If using this, the receiving file would have to have bytes inserted that exactly match the number of bytes replaced. I'm thinking that you'll likely have to stream through the second XML with a SAX parser and copy information (or insert new information) as you stream with an XML writer of some sort.

  • 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.

Maybe you are looking for

  • How to Generate a new PERNR using  HR_MAINTAIN_MASTERDATA in WD?

    Hi Experts; Can I get some sample code for creating a new PERNR using HR_MAINTAIN_MASTERDATA  FM. ???!!! I've created  a  some input fields in webdynpro using infotype PA0002 and depending upon those  fields I want to generate a PERNR number . Plz he

  • Cover Art All Screwed Up

    I recently had to restore my Ipod classic as it was not sending play counts back to Itunes... that problem is now fixed, but I have another. Much of the cover art is now missing when I play tracks on my Ipod, and what there is is now all jumbled up.

  • Switching between widescreen and 4:3

    I originally setup a project in 16:9 format. And at a later date, realized it needed to be 4:3. It seemed like iMovie switched it over as I simply selected to convert it through the pulldown. But when I go to reburn and play the dvd on a regular 4:3

  • Db Connection Broker issues

    hi all, i am using dbconnectionbroker from the site http://www.javaexchange.com/ it works very fine but i have one issue i want to connect db with 2 different users. how in this class i can keep 2 different users connection or connection with 2 diffe

  • JDEVELOPER PERFORMANCE PROBLEM

    Hello All, Jdeveloper 9i with OA extension is very slow in my machine.Im running with 512MB ram and the database is remote. The browser is waiting for a long time when JDeveloper shows the following message Tutalii: D:\Jdev9iOA\jdevbin\jdev\appslibrt