Read XML file node data in CLOB column
Hi Friends,
Here is my information.
CREATE TABLE TABL1
( A CLOB,
B NUMBER,
C VARCHAR2(10))
INSERT INTO TABL1 VALUES ('<PARENT><CHILD1> 12 </CHILD1><CHILD2> 22 </CHILD2></PARENT>',1,'FIRST');
INSERT INTO TABL1 VALUES ('<PARENT2><CHILD> 11 </CHILD1><CHILD2> 21 </CHILD2></PARENT>',2,'SECOND');
My requirement is I need to pickup the value existed between child2 node for both records.
Could any one help me to resolve this issue?
Thanks
Venkata
You mean like this?
SQL> INSERT INTO TABL1 VALUES ('<PARENT><CHILDONE>12</CHILDONE><CHILDTWO>22</CHILDTWO></PARENT>',1,'FIRST');
1 row created.
SQL> INSERT INTO TABL1 VALUES ('<PARENT><CHILDONE>11</CHILDONE><CHILDTWO>21</CHILDTWO></PARENT>',2,'SECOND');
1 row created.
SQL> ed
Wrote file afiedt.buf
1 select extractvalue(xmltype(a),'//CHILDTWO/text()') as val
2* from tabl1
SQL> /
VAL
22
21
SQL>
Similar Messages
-
File Adapter : read XML file with data validation and file rejection ?
Hello,
In order to read a XML file with the file adapter, I have defined a XSD that I have imported to my project.
Now the File Adapter reads the file correctly but it does not give an error when:
- the data types are not valid. Ex: dateTime is expected in a node and a string is provided
- the XML file has invalid attributes.
How can I manage error handling for XML files ?
Should I write my own Java XPath function to validate the file after is processed ? (here is an example for doing this : http://www.experts-exchange.com/Web/Web_Languages/XML/Q_21058568.html)
Thanks.one option is to specify validateXML on the partnerlink (that describes the file adapter endpoint) such as shown here
<partnerLinkBinding name="StarLoanService">
<property name="wsdlLocation"> http://<hostname>:9700/orabpel/default/StarLoan/StarLoan?wsdl</property>
<property name="validateXML">true</property>
</partnerLinkBinding>
hth clemens -
Please recommend if we have options to read xml file and insert data into table without a temporary table.
DECLARE @data XML;
SET @data =N'<Root>
<List RecordID="946236" />
<List RecordID="946237" />
<List RecordID="946238" />
<List RecordID="946239" />
<List RecordID="946240" />
</Root>'
INSERT INTO t (id) SELECT T.customer.value('@RecordID', 'INT') AS id
FROM @data.nodes('Root/List')
AS T(customer);
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
Reading XML file using BAPI and then uploading that xml file data into SAP
I am getting a xml file from Java server. I need to take
data from this file using BAPI and need to upload into SAP using SAP.
Please tell me how to read XML files using BAPI's.<b>SDIXML_DATA_TO_DOM</b> Convert SAP data (elementary/structured/table types) into DOM (XML
<b>SDIXML_DOM_TO_XML</b> Convert DOM (XML) into string of bytes that can be downloaded to PC or application server
<b>SDIXML_DOM_TO_SCREEN</b> Display DOM (XML)
<b>SDIXML_DOM_TO_DATA</b>
data: it_table like t001 occurs 0.
data: l_dom TYPE REF TO IF_IXML_ELEMENT,
m_document TYPE REF TO IF_IXML_DOCUMENT,
g_ixml TYPE REF TO IF_IXML,
w_string TYPE XSTRING,
w_size TYPE I,
w_result TYPE I,
w_line TYPE STRING,
it_xml TYPE DCXMLLINES,
s_xml like line of it_xml,
w_rc like sy-subrc.
start-of-selection.
select * from t001 into table it_table.
end-of-selection.
initialize iXML-Framework ****
write: / 'initialiazing iXML:'.
class cl_ixml definition load.
g_ixml = cl_ixml=>create( ).
check not g_ixml is initial.
write: 'ok'.
create DOM from SAP data ****
write: / 'creating iXML doc:'.
m_document = g_ixml->create_document( ).
check not m_document is initial.
write: 'ok'.
write: / 'converting DATA TO DOM 1:'.
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
NAME = 'IT_TABLE'
DATAOBJECT = it_table[]
IMPORTING
DATA_AS_DOM = l_dom
CHANGING
DOCUMENT = m_document
EXCEPTIONS
ILLEGAL_NAME = 1
OTHERS = 2.
if sy-subrc = 0. write 'ok'.
else. write: 'Err =', sy-subrc.
endif.
check not l_dom is initial.
write: / 'appending DOM to iXML doc:'.
w_rc = m_document->append_child( new_child = l_dom ).
if w_rc is initial. write 'ok'.
else. write: 'Err =', w_rc.
endif.
visualize iXML (DOM) ****
write: / 'displaying DOM:'.
CALL FUNCTION 'SDIXML_DOM_TO_SCREEN'
EXPORTING
DOCUMENT = m_document
EXCEPTIONS
NO_DOCUMENT = 1
OTHERS = 2.
if sy-subrc = 0. write 'ok'.
else. write: 'Err =', sy-subrc.
endif.
convert DOM to XML doc (table) ****
write: / 'converting DOM TO XML:'.
CALL FUNCTION 'SDIXML_DOM_TO_XML'
EXPORTING
DOCUMENT = m_document
PRETTY_PRINT = ' '
IMPORTING
XML_AS_STRING = w_string
SIZE = w_size
TABLES
XML_AS_TABLE = it_xml
EXCEPTIONS
NO_DOCUMENT = 1
OTHERS = 2.
if sy-subrc = 0. write 'ok'.
else. write: 'Err =', sy-subrc.
endif.
write: / 'XML as string of size:', w_size, / w_string.
describe table it_xml lines w_result.
write: / 'XML as table of', w_result, 'lines:'..
loop at it_xml into s_xml.
write s_xml.
endloop.
write: / 'end of processing'.
end of code
Hope this will be useful.
regards
vinod -
How to read XML file and update the data in MS CRM 2011?
Hi Folks,
Can anyone please help me finding some references to read XML files and push the data to MS CRM 2011 preferably by using a console application.
Please let me know if any ways of handling it in simple ways.
Thanks,
SriHI,
How to read XML file:
https://social.msdn.microsoft.com/Forums/en-US/5dd7261b-86c4-4ca8-ba87-95196ef3ba50/need-to-display-xml-file-in-textboxes-edit-the-data-and-save-the-new-xml-file?forum=csharpgeneral
How to work with CRM:
ClientCredentials credentials = new ClientCredentials();
credentials.Windows.ClientCredential = new System.Net.NetworkCredential("USER", "Password", "Domain");
Uri uri = new Uri("http://server/Organization/XRMServices/2011/Organization.svc");
OrganizationServiceProxy proxy = new OrganizationServiceProxy(uri, null, credentials, null);
proxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
IOrganizationService service = (IOrganizationService)proxy;
//using "service" you can create, update and retrieve entities.
More information here about service functions:
https://msdn.microsoft.com/en-us/library/gg328198.aspx -
Want to insert a XSL file's data into a column of type SYS.XMLTYPE??
Hello Friends
I want to insert a XSL file's data into a column of a table of type SYS.XMLTYPE. Following is the XSL which i want to add into a table please help in.....
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="html" encoding="UTF-8" />
<xsl:template match="clinical_study">
<xsl:variable name="status">
<xsl:apply-templates select='overall_status' />
</xsl:variable>
<html>
<head>
<title>Summary</title>
<link href="merckcancer.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="trialtop" class="trialtop">
<div id="trialtophead" class="trialtophead">
<H1>Summary</H1>
</div>
<!-- start of trial body-->
<div id="trialmiddle" class="trialmiddle">
<span class="trialtitle1"><xsl:apply-templates select='brief_title'/></span>
<span class="tealbold">Official Title: </span><xsl:apply-templates select='official_title' />
<span class="tealbold" title="ClinicalTrials.gov Identifier">NCT Id: </span><xsl:apply-templates select='//nct_id'/>
<span class="tealbold">Conditions: </span><xsl:for-each select="//condition[position()!=last()]"><xsl:value-of select="normalize-space(.)" /><xsl:text>, </xsl:text></xsl:for-each>
<xsl:for-each select="//condition[position()=last()]"><xsl:value-of select="normalize-space(.)" /></xsl:for-each>
<span class="tealbold">Phase: </span><xsl:apply-templates select='phase' />
<span class="tealbold">Status: </span><xsl:value-of select="$status" />
<span class="tealbold">Interventions: </span><xsl:for-each select="//intervention[position()!=last()]"><xsl:value-of select="normalize-space(intervention_type)" />: <xsl:value-of select="normalize-space(intervention_name)" /><xsl:text>, </xsl:text></xsl:for-each><xsl:for-each select="//intervention[position()=last()]"><xsl:value-of select="normalize-space(intervention_type)" />: <xsl:value-of select="normalize-space(intervention_name)" /></xsl:for-each>
<xsl:apply-templates select='eligibility'><xsl:with-param name="type">short</xsl:with-param></xsl:apply-templates>
</div><!-- end of middle -->
</div><!-- end of top-->
<div id="detail" class="detail">
<div id="detailtophead" class="detailtophead">
<H1>Details</H1>
</div>
<!-- end of detailtop-->
<!-- start of detail body-->
<div id="detailmiddle" class="detailmiddle">
<span class="trialtitle2">Trial Description:</span>
<span class="trialtitle4"><xsl:apply-templates select='brief_summary/textblock' /></span>
<span class="trialtitle1">Eligibility: </span>
<xsl:apply-templates select='eligibility'><xsl:with-param name="type">long</xsl:with-param></xsl:apply-templates>
</div><!--end of detail middle-->
</div><!-- end of detail top-->
<div id="enroll" class="enroll">
<div id="enrolltophead" class="enrolltophead">
<H1>Enrollment</H1>
</div>
<!-- end of enroll top head-->
<!-- start of enroll body-->
<div id="enrollmiddle" class="enrollmiddle">
<xsl:choose>
<xsl:when test="$status = 'Recruiting'">
This study has participating centers in a number of locations.
To take the next step in learning more about participating in this clinical study please call one of these trial contacts.<p/>
The trial contacts will know this study as <span class="tealbold"><xsl:apply-templates select='//org_study_id'/></span>
or may know the study under the ClinicalTrials.gov identifier <span class="tealbold"><xsl:apply-templates select='//nct_id'/></span>.<p/>
<p/>
<xsl:apply-templates select='overall_contact'/>
<xsl:for-each select="location">
<xsl:call-template name='location'/><p/>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
This study is not currently Recruiting, it is <xsl:value-of select="$status" />.
</xsl:otherwise>
</xsl:choose>
</div><!--end of enroll middle-->
</div><!-- end of enroll -->
<div id="credit" class="credit">
<div id="credittophead" class="credittophead">
<H1>Credits</H1>
</div>
<!-- end of credit top head-->
<!-- start of credit body-->
<div id="creditmiddle" class="creditmiddle">
Information about this trial has been gathered from ClinicalTrials.gov. Please see
<a>
<xsl:attribute name="href" >
/ctcpub/redirect.jsp?redirectURL=http://ClinicalTrials.gov
</xsl:attribute>
ClinicalTrials.gov
</a> for more complete information.<p/>
<xsl:apply-templates select='required_header/download_date'/><p/>
<a>
<xsl:attribute name="href" >
/ctcpub/redirect.jsp?redirectURL=<xsl:apply-templates select='required_header/url'/>
</xsl:attribute>
<xsl:apply-templates select='required_header/link_text'/>
</a> <p/>
This trial data was last updated on <xsl:apply-templates select='//lastchanged_date'/><p/>
</div><!--end of credit body-->
</div><!--end of credit-->
</body>
</html>
</xsl:template>
<xsl:template match="brief_title">
<span class="trialtitle"><xsl:value-of select="normalize-space(.)" /></span>
</xsl:template>
<xsl:template match="official_title">
<span class="tealbold">Official Title: </span> <xsl:value-of select="normalize-space(.)" />
</xsl:template>
<xsl:template match="phase">
<span class="tealbold">Phase: </span> <xsl:value-of select="normalize-space(.)" />
</xsl:template>
<xsl:template match="overall_status">
<xsl:value-of select="normalize-space(.)" />
</xsl:template>
<xsl:template match="eligibility">
<xsl:param name="type" />
<xsl:choose>
<xsl:when test="$type = 'short'">
<span class="tealbold">Eligibility: </span> <xsl:call-template name="ages">
<xsl:with-param name="min"><xsl:value-of select="normalize-space(minimum_age)" /></xsl:with-param>
<xsl:with-param name="max"><xsl:value-of select="normalize-space(maximum_age)" /></xsl:with-param>
</xsl:call-template>, <xsl:apply-templates select='gender' />
</xsl:when>
<xsl:when test="$type = 'long'">
<span class="trialtitle">Eligibility: </span>
<span class="tealbold">Age: </span> <xsl:call-template name="ages">
<xsl:with-param name="min"><xsl:value-of select="normalize-space(minimum_age)" /></xsl:with-param>
<xsl:with-param name="max"><xsl:value-of select="normalize-space(maximum_age)" /></xsl:with-param>
</xsl:call-template>
<span class="tealbold">Genders Eligible for Study: </span> <xsl:apply-templates select='gender' />
<xsl:text>
</xsl:text>
<span class="tealbold">Eligibility Criteria: </span>
<xsl:apply-templates select='criteria/textblock' />
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="gender">
<xsl:choose>
<xsl:when test=". = 'Both'">Male or Female</xsl:when>
<xsl:otherwise>
<xsl:value-of select="normalize-space(.)" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="overall_contact">
<span class="trialtitle">Central Contact: </span>
<xsl:apply-templates select='./first_name' /><xsl:text> </xsl:text>
<xsl:apply-templates select='./middle_name' /><xsl:text> </xsl:text>
<xsl:apply-templates select='./last_name' />
<xsl:apply-templates select='./phone' />
<xsl:apply-templates select='./email' />
</xsl:template>
<xsl:template name="ages">
<xsl:param name="min" />
<xsl:param name="max" />
<xsl:choose>
<xsl:when test="($min != '') and ($max != '')">Between <xsl:value-of select="$min" /> and <xsl:value-of select="$max" /></xsl:when>
<xsl:when test="($min != '') and ($max = '')"><xsl:value-of select="$min" /> and Above</xsl:when>
<xsl:when test="($min = '') and ($max != '')">Under <xsl:value-of select="$max" /></xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="brief_summary/textblock">
<span class="trialtitle">Trial Description: </span> <xsl:call-template name="substitute">
<xsl:with-param name="string" select="." />
</xsl:call-template>
</xsl:template>
<xsl:template name="location">
<span class="trialtitle"><xsl:apply-templates select='.//country' /><xsl:apply-templates select='.//state' /></span>
<xsl:apply-templates select='./facility/name' /><xsl:apply-templates select='.//city' /><xsl:apply-templates select='.//zip' /><xsl:apply-templates select='.//status' />
<xsl:apply-templates select='./contact' />
</xsl:template>
<xsl:template match="contact">
<span class="tealbold">Site Contact: </span>
<xsl:apply-templates select='first_name' />
<xsl:apply-templates select='middle_name' />
<xsl:apply-templates select='last_name' />
<xsl:apply-templates select='phone' />
<xsl:apply-templates select='email' />
</xsl:template>
<xsl:template match="criteria/textblock">
<xsl:call-template name="substitute">
<xsl:with-param name="string" select="." />
</xsl:call-template>
</xsl:template>
<xsl:template match="facility/name"><xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="country"><xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="city">, <xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="zip">, <xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="state">, <xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="status">, <xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="first_name"><xsl:value-of select="normalize-space(.)" /> </xsl:template>
<xsl:template match="middle_name"><xsl:value-of select="normalize-space(.)" /> </xsl:template>
<xsl:template match="last_name"><xsl:value-of select="normalize-space(.)" /></xsl:template>
<xsl:template match="phone">Phone: <xsl:value-of select="normalize-space(.)" />
</xsl:template>
<xsl:template match="email"><xsl:if test='. != ""'>EMail: <xsl:value-of select="normalize-space(.)" />
</xsl:if></xsl:template>
<xsl:template name="substitute">
<xsl:param name="string" />
<xsl:param name="from" select="'
'" />
<xsl:param name="to">
</xsl:param>
<xsl:choose>
<xsl:when test="contains($string, $from)">
<xsl:value-of select="substring-before($string, $from)" />
<xsl:copy-of select="$to" />
<xsl:call-template name="substitute">
<xsl:with-param name="string"
select="substring-after($string, $from)" />
<xsl:with-param name="from" select="$from" />
<xsl:with-param name="to" select="$to" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Please do as early as possible..
thanks in advanceHi I tried with below querry but iam getting an error message?
SQL> Insert into temp_clob_tab
2 SELECT XMLELEMENT("soap:Envelope",
3 XMLATTRIBUTES ('http://www.w3.org/2001/XMLSchema-instance' as "xmlns:xsi",
4 'http://www.w3.org/2001/XMLSchema' as "xmlns:xsd",
5 'http://schemas.xmlsoap.org/soap/envelope/' as "xmlns:soap"),
6 XMLELEMENT("soap:Body"),XMLELEMENT("AddListing",
7 XMLATTRIBUTES ('http://www.christielites.com' as "xmlns" )),
8 XMLELEMENT ( "SCOMCODE",a.SCOMCODE), XMLELEMENT ( "SLOCCODE",SLOCCODE),
9 XMLELEMENT ( "DSTART",DSTART),XMLELEMENT ( "DEND",DEND),XMLELEMENT ( "SECODE",SECODE),
10 XMLELEMENT ( "IAVAIL",IAVAIL),XMLELEMENT ("IOWNED",IOWNED),XMLELEMENT ("SPOSTTRANS",SPOSTTRANS))
11 from LiteExchangeAvailablity a;
SELECT XMLELEMENT("soap:Envelope",
ERROR at line 2:
ORA-00932: inconsistent datatypes: expected CLOB got - -
Load and Read XML file size more than 4GB
Hi All
My environment is Oracle 10.2.0.4 on Solaris and I have processes to work with XML file as below detail by PL/SQL
1. I read XML file over HTTP port into XMLTYPE column in table.
2. I read value no.1 from table and extract to insert into another table
On test db, everything is work but I got below error when I use production XML file
ORA-31186: Document contains too many nodes
Current XML size about 100MB but the procedure must support XML file size more than 4GB in the future.
Belows are some part of my code for your info.
1. Read XML by line into variable and insert into table
LOOP
UTL_HTTP.read_text(http_resp, v_resptext, 32767);
DBMS_LOB.writeappend (v_clob, LENGTH(v_resptext), v_resptext);
END LOOP;
INSERT INTO XMLTAB VALUES (XMLTYPE(v_clob));
2. Read cell value from XML column and extract to insert into another table
DECLARE
CURSOR c_xml IS
(SELECT trim(y.cvalue)
FROM XMLTAB xt,
XMLTable('/Table/Rows/Cells/Cell' PASSING xt.XMLDoc
COLUMNS
cvalue
VARCHAR(50)
PATH '/') y;
BEGIN
OPEN c_xml;
FETCH c_xml INTO v_TempValue;
<Generate insert statement into another table>
EXIT WHEN c_xml%NOTFOUND;
CLOSE c_xml;
END
And one more problem is performance issue when XML file is big, first step to load XML content to XMLTYPE column slowly.
Could you please suggest any solution to read large XML file and improve performance?
Thank you in advance.
HikoSee Mark Drake's (Product Manager Oracle XMLDB, Oracle US) response in this old post: ORA-31167: 64k size limit for XML node
The "in a future release" reference, means that this boundary 64K / node issue, was lifted in 11g and onwards...
So first of all, if not only due to performance improvements, I would strongly suggest to upgrade to a database version which is supported by Oracle, see My Oracle Support... In short Oracle 10.2.x was in extended support up to summer 2013, if I am not mistaken and is currently not supported anymore...
If you are able to able to upgrade, please use the much, much more performing XMLType Securefile Binary XML storage option, instead of the XMLType (Basicfile) CLOB storage option.
HTH -
Read XML file from presentation server
Hi All,
I want read XML file from presentation server currently i am using GUI_UPLOAD fm . but it is reading some junk data.
DATA : BEGIN OF upl OCCURS 0,
f(255) TYPE c,
END OF upl.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = D:\XX.XML'
filetype = 'BIN'
TABLES
data_tab = upl.
is there any other alternative.
Thanks
Swarup,Hi Swarup,
Use method IMPORT_FROM_FILE of class CL_XML_DOCUMENT.
A sample code snippet :-
PARAMETERS: p_filnam TYPE localfile OBLIGATORY
DEFAULT 'C:\Documents and Settings\ssaha\Desktop\test.xml'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_filnam.
DATA: l_v_fieldname TYPE dynfnam.
l_v_fieldname = p_filnam.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = l_v_fieldname
IMPORTING
file_name = p_filnam.
START-OF-SELECTION.
TYPES:
BEGIN OF ty_tab,
name TYPE string,
value TYPE string,
END OF ty_tab.
DATA:
lcl_xml_doc TYPE REF TO cl_xml_document,
v_subrc TYPE sysubrc,
v_node TYPE REF TO if_ixml_node,
v_child_node TYPE REF TO if_ixml_node,
v_root TYPE REF TO if_ixml_node,
v_iterator TYPE REF TO if_ixml_node_iterator,
v_nodemap TYPE REF TO if_ixml_named_node_map,
v_count TYPE i,
v_index TYPE i,
v_attr TYPE REF TO if_ixml_node,
v_name TYPE string,
v_prefix TYPE string,
v_value TYPE string,
v_char TYPE char2.
DATA:
itab TYPE STANDARD TABLE OF ty_tab,
wa TYPE ty_tab.
CREATE OBJECT lcl_xml_doc.
CALL METHOD lcl_xml_doc->import_from_file
EXPORTING
filename = p_filnam
RECEIVING
retcode = v_subrc.
CHECK v_subrc = 0.
v_node = lcl_xml_doc->m_document.
CHECK NOT v_node IS INITIAL.
v_iterator = v_node->create_iterator( ).
v_node = v_iterator->get_next( ).
WHILE NOT v_node IS INITIAL.
CASE v_node->get_type( ).
WHEN if_ixml_node=>co_node_element.
v_name = v_node->get_name( ).
v_nodemap = v_node->get_attributes( ).
IF NOT v_nodemap IS INITIAL
* attributes
v_count = v_nodemap->get_length( ).
DO v_count TIMES.
v_index = sy-index - 1.
v_attr = v_nodemap->get_item( v_index ).
v_name = v_attr->get_name( ).
v_prefix = v_attr->get_namespace_prefix( ).
v_value = v_attr->get_value( ).
ENDDO.
ENDIF.
WHEN if_ixml_node=>co_node_text OR
if_ixml_node=>co_node_cdata_section.
* text node
v_value = v_node->get_value( ).
MOVE v_value TO v_char.
IF v_char <> cl_abap_char_utilities=>cr_lf.
wa-name = v_name.
wa-value = v_value.
APPEND wa TO itab.
CLEAR wa.
ENDIF.
ENDCASE.
* advance to next node
v_node = v_iterator->get_next( ).
ENDWHILE.
LOOP AT itab INTO wa.
ENDLOOP.
Regards
Abhii -
How to read xml file as shown below.
Hello,
I am using flash builder 4 and currently working on implementing AIR application.
I need to read xml file data.
Normal xml files are easy to read and i am much more aware of it.
But can any one have idea how to read XML file which is given below.
<node>
<key>ID</key>
<integer>1</integer>
<key>Name</key>
<string>Dhwani</string>
<key>Postno</key>
<integer>20</integer>
<key>deskname</key>
<string>flex</string>
<key>empid</key>
<integer>25</integer>
<key>projectname</key>
<string>abc</string>
</node>
Here i have xml file in form of key value pair. <key> node shows name of the key and after that <integer> or <string> node are the value for that specific key.
if i select node.key then it shows me all the keys. and from that i cant make out what is the value for key ID.
Is there any way to take first node and then second. i mean first i ll take value of key and store it into some arraycollection. and then value will be stored.
Any help is appreciated.. Looking for positive reply.
Thanks
DhwaniThere are different methods to access XML data which have pro's and cons. Let us know more about what you want to do and we can help you.
-
How can i read data from xml file and store relevant data in my database? what r the initial requirements to read xml file.
So if the Database is in Japanese for instance, using Unicode, and you wanted to use pl/sql queries to create an XML file you could do that and then read that XML file back into pl/sql insert queries after web transmission to another Oracle 8i database? Any good resources that you know of for doing this kind of thing?
-dan
It depends on exactly what you want to do. If you fetch an XML document from a web page you can store it as a CLOB in the database, if you want to read it from a file you need to be aware of character set translation problems when using Unicode character sets and dbms_lob.Read function, use utl_file instead. If you wish to transform the XML document using XSLT then you need to load the stylesheet from OS, parse it and apply it to the document.
If you want some sample code then reply with a mail address. -
JAVA Read XML file and modify attribute values based on some conditions
I have the following XML file "C:/Data.xml".
If the attributes on Dimension, Metirc, Data date Matches then Add the amount values and remove the duplicate DS node.
I looked some examples on hashtable/hashmapping but I could not find that meets my creiteria. I appriciate any direction or suggestions on this.
<ED LG="US">
<DS name="1" source="A" freq="Day">
<Dimension name="code" value="3">
<Metric ref_name="A1-ACT">
<Data date="2011-03-04T00:00:00" amount="30" />
</Metric>
</Dimension>
</DS>
<DS name="1" source="A" freq="Day">
<Dimension name="code" value="3">
<Metric name="A1-ACT">
<Data date="2011-03-04T00:00:00" amount="40" />
</Metric>
</Dimension>
</DS>
<DS name="1" source="A" freq="Day">
<Dimension name="code" value="3">
<Metric name="A1-ACT">
<Data date="2011-03-05T00:00:00" amount="20" />
</Metric>
</Dimension>
</DS>
</ED>
Expected Result:
<ED LG="US">
<DS name="1" source="A" freq="Day">
<Dimension name="code" value="3">
<Metric ref_name="A1-ACT">
<Data date="2011-03-04T00:00:00" amount="70" />
</Metric>
</Dimension>
</DS>
<DS name="1" source="A" freq="Day">
<Dimension name="code" value="3">
<Metric name="A1-ACT">
<Data date="2011-03-05T00:00:00" amount="20" />
</Metric>
</Dimension>
</DS>
</ED>
thanks
Edited by: user7188033 on Mar 19, 2011 1:40 PM
Edited by: user7188033 on Mar 19, 2011 2:01 PM
Edited by: user7188033 on Mar 19, 2011 2:02 PMUse XSLT for transforming the XML document.
-
Read XML File on Unix from PL SQL
Hi,
How to read XML file placed on Unix Dir .
If file name is yx.xml and file contain below data. Please let me know how to read
column values such as AutomatedTransferOrders uniqueId="11761:234570"
2)Cto Type = CTO
3)Description = Test PIP
<AgileData xsi:schemaLocation="http://www.oracle.com/ http://www.oracle.com/technology/products/applications/xml/aXML.xsd">
<AutomatedTransferOrders uniqueId="11761:234570">
<CoverPage>
<CtoType>CTO</CtoType>
<CtoNumber>CTO00069</CtoNumber>
<Description>Created by subscriber DBA Program Prototype Change Subscriber.</Description>
<Status>Released</Status>
<Workflow>Default CTOs</Workflow>
<Subscriber>DBA Program Prototype Change Subscriber</Subscriber>
<DateOriginated>2012-03-15T00:29:10Z</DateOriginated>
<DateReleased>2012-03-15T00:29:11Z</DateReleased>
</CoverPage>
<SelectedObjects referentId="6000:6243458">
<Type>Program Change Order</Type>
<NameNumber>PG0000038</NameNumber>
<Description>Test PIP</Description>
<LifecycleStatus>Released</LifecycleStatus>
</SelectedObjects>
</AutomatedTransferOrders>
</AgileData>
Appreciate your help.
Thanks and Regards,
Abhisample
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
Connected as apps
SQL>
SQL> with t as
2 (select xmltype('<AgileData>
3 <AutomatedTransferOrders uniqueId="11761:6243470">
4 <CoverPage>
5 <AtoType>ATO</AtoType>
6 <AtoNumber>ATO00069</AtoNumber>
7 <Description>Created by subscriber BDA Program Prototype Change Subscriber.</Description>
8 <Status>Released</Status>
9 <Workflow>Default ATOs</Workflow>
10 <Subscriber>BDA Program Prototype Change Subscriber</Subscriber>
11 <DateOriginated>2012-03-15T00:29:10Z</DateOriginated>
12 <DateReleased>2012-03-15T00:29:11Z</DateReleased>
13 </CoverPage>
14 <SelectedObjects referentId="6000:6243458">
15 <Type>Program Change Order</Type>
16 <NameNumber>PG0000038</NameNumber>
17 <Description>Test PIP</Description>
18 <LifecycleStatus>Released</LifecycleStatus>
19 </SelectedObjects>
20 </AutomatedTransferOrders>
21 <ChangeOrders uniqueId="6000:6243458">
22 <Workflow>
23 <StatusCode>Process is moved forward</StatusCode>
24 <WorkflowStatus>Pending</WorkflowStatus>
25 <Workflow>BDA Program Prototype Workflow</Workflow>
26 <StatusChangedBy>Gay Groce (ggroce)</StatusChangedBy>
27 <LocalClientTime>2012-03-15T00:29:11Z</LocalClientTime>
28 </Workflow>
29 <Workflow>
30 <StatusCode>Process is skipped</StatusCode>
31 <WorkflowStatus>PD Approval</WorkflowStatus>
32 <Workflow>BDA Program Prototype Workflow</Workflow>
33 <StatusChangedBy>Gay Groce (ggroce)</StatusChangedBy>
34 <LocalClientTime>2012-03-15T00:29:11Z</LocalClientTime>
35 </Workflow>
36 <Workflow>
37 <StatusCode>Current Process</StatusCode>
38 <WorkflowStatus>Released</WorkflowStatus>
39 <Workflow>BDA Program Prototype Workflow</Workflow>
40 </Workflow>
41 <Workflow>
42 <StatusCode>Future Process</StatusCode>
43 <WorkflowStatus>Implemented</WorkflowStatus>
44 <Workflow>BDA Program Prototype Workflow</Workflow>
45 </Workflow>
46 </ChangeOrders>
47 </AgileData>') col
48 from dual)
49 --
50 select x.*
51 from t,
52 xmltable('AgileData/ChangeOrders/Workflow'
53 passing t.col
54 columns StatusCode varchar2(100) path 'StatusCode',
55 WorkflowStatus varchar2(100) path 'WorkflowStatus',
56 Workflow varchar2(100) path 'Workflow',
57 StatusChangedBy varchar2(100) path 'StatusChangedBy',
58 LocalClientTime varchar2(100) path 'LocalClientTime') x
59 /
STATUSCODE WORKFLOWSTATUS WORKFLOW STATUSCHANGEDBY LOCALCLIENTTIME
Process is moved forward Pending BDA Program Prototype Workflow Gay Groce (ggroce) 2012-03-15T00:29:11Z
Process is skipped PD Approval BDA Program Prototype Workflow Gay Groce (ggroce) 2012-03-15T00:29:11Z
Current Process Released BDA Program Prototype Workflow
Future Process Implemented BDA Program Prototype Workflow
SQL> -
Read XML file into stored procedure
hi to all, i have this stored procedure :
create or replace
PROCEDURE INSERTXML(
p_xml_in CLOB,
p_table IN VARCHAR2 ) AS
insCtx DBMS_XMLStore.ctxType;
v_rows NUMBER;
BEGIN
insCtx := DBMS_XMLStore.newContext(p_table); -- get saved context
dbms_xmlstore.setRowTag(insCtx,'Row');
DBMS_XMLStore.clearUpdateColumnList(insCtx); -- clear the update settings
-- set the columns to be updated as a list of values
DBMS_XMLStore.setUpdateColumn(insCtx,'ORDERNUMBER');
DBMS_XMLStore.setUpdateColumn(insCtx,'PLANT');
DBMS_XMLStore.setUpdateColumn(insCtx,'MATERIAL');
DBMS_XMLStore.setUpdateColumn(insCtx,'LINENUMBER');
DBMS_XMLStore.setUpdatecolumn(insCtx,'NOMSPEED');
DBMS_XMLStore.setUpdatecolumn(insCtx,'STARTDATE');
DBMS_XMLStore.setUpdatecolumn(insCtx,'FINISHDATE');
DBMS_XMLStore.setUpdatecolumn(insCtx,'TARGETQTY');
DBMS_XMLStore.setUpdatecolumn(insCtx,'UNIT');
DBMS_XMLStore.setUpdatecolumn(insCtx,'SYSTEMSTATUS');
v_rows := DBMS_XMLStore.insertXML(insCtx, p_xml_in);
-- Close the context
DBMS_XMLStore.closeContext(insCtx);
END;
that passes xml file and puts in table but SAP Mii have the limitation that the maximun value of strings is 4000..how can i pass this limitation?!?! someone have some ideia?!?!...i have now to read XML file to stored procedure...could someone help me??
regards and thanks in advancehello Michael thanks for your help but appear to me some strange errors, i created this package in Oracle SQL Developer...
create or replace PACKAGE PACKAGE_XML AS
type return_cur IS ref CURSOR;
procedure INSERTXML4(
xmlDoc IN CLOB,
tableName IN VARCHAR2,
myRC IN OUT return_cur
END PACKAGE_XML;
and compile and everthing is ok, then i changed my SP and it looks like this:
create or replace PROCEDURE INSERTXML4
(xmlDoc in CLOB, tableName in VARCHAR2, refcur in out package_xml.return_cur)
AS
insCtx dbms_xmlsave.ctxType;
rowcnt number;
BEGIN
insCtx := dbms_xmlsave.newContext(tableName);
dbms_xmlsave.setignorecase(insCtx,1);
rowcnt := dbms_xmlsave.insertxml(insCtx, xmlDoc);
dbms_xmlsave.closecontext(insCtx);
OPEN refcur FOR SELECT rowcnt AS cnt FROM dual;
END INSERTXML4;
but i cant compile...it throws this errors:
Error(5,10): PLS-00201: identifier 'DBMS_XMLSAVE.CTXTYPE' must be declared
Error(5,10): PL/SQL: Item ignored
Error(8,3): PLS-00320: the declaration of the type of this expression is incomplete or malformed
Error(8,3): PL/SQL: Statement ignored
Error(9,3): PL/SQL: Statement ignored
Error(9,30): PLS-00320: the declaration of the type of this expression is incomplete or malformed
Error(10,3): PL/SQL: Statement ignored
Error(10,13): PLS-00201: identifier 'DBMS_XMLSAVE.INSERTXML' must be declared
Error(11,3): PL/SQL: Statement ignored
Error(11,29): PLS-00320: the declaration of the type of this expression is incomplete or malformed
do you could help..
regards
Mário -
FM to read XML files from Application server in ECC5.0
Hi All,
We need to pick up an XML file from Application server/FTP server. The requirement is to parse the XML file and process it to create material master. SAP provides standard function modules to read XML files.
Now we need to read the XML file contents of MM01 and upload into SAP Data Base through BAPI
I need to know about the Function modules to read XML files from Application Server and also about the FM's that will update the Date base tables with the data obtained form XML files.
Regards
PrathimaParsing XML data:
http://help.sap.com/saphelp_nw04/helpdata/en/86/8280ba12d511d5991b00508b6b8b11/frameset.htm
or alternatively check out ABAP online help for "CALL TRANSFORMATION".
For creating the material master look at BAPI_STANDARDMATERIAL_CREATE.
Thomas -
Reading XML file from application server and put into internal table-4.6C
Dear All,
Is there any way of reading XML file from application server to SAP? I am using 4.6C. Function module SCMS_STRING_TO_XSTRING function module is not available. Please suggest.
Thanks and regards,
AtanuHi Atanu!
Simply use the XSLT transformation 'ID'.
FIELD-SYMBOLS <ls_result> TYPE ANY.
CREATE DATA lref_data TYPE (your_structure).
ASSIGN lref_data->* TO <ls_result>.
CALL TRANSFORMATION id
SOURCE XML xmlstr
RESULT result = <ls_result>.
"xmlstr" contains your XML file. Just read it into it via standard I/O operations. "<ls_result>" will contain your DDIC formatted content.
Best regards
Torsten
Maybe you are looking for
-
Windows vista, internet explorer 8 and adobe reader 9
I have windows vista, internet explorer 8 and adobe reader 9. When i open pdf files from a website i cannot save the document. I don't get an error message, it just does not open.
-
Animation. How do I import still images in final cut pro x (from dragon frame) duration 3 frames pr. image? We have allready tried to set stillimages duration in preferences to 0,08 sek, but it does not have any effect!
-
Hi All, This was regarding installing Oracle 11gR1 on the same linux server machine, where oracle 10.2.0.1.0 resides, i tried to install 11g on the same parent directory /u01 where 10g directory present, i.e, for 10g - /u01/app/oracle/product/10.2.0/
-
Icons at the bottom of iBooks don't load
I opened iBooks last night to download one of my dads books on my iPad 4 but saw that the bottom icons did not load. I have logged out and logged back into itunes and completely reset my iPad. Running IOS 8.1.
-
MPEG4 to DV-PAL Gives Weird "Interlaced" Result.
I have FCP 4.5 and Quicktime 6.5.2 and OS 10.3.9. I recently upgraded DivX to DivX 6. That may or may not be related to this issue. I really don't know. I've been sent some AVI files to edit in FCP 4.5 before being made into a DVD. I decided to conve