The analysis of an XML string

Hi, I wonder if it is possible to skip creating a physics .xml file and parse the XML message I receive directly?

normally, it takes

builder.parse(fileConn.openInputStream());

but it is not possible to open an InputStream on a string...

ByteArrayInputStream built from String.getBytes () [or whatever we call.]

It implements something like the idea of stringstream c ++.

Tags: BlackBerry Developers

Similar Questions

  • Extract the contents of an XML string in offline mode

    HI gentlemen,

    Could you help me solve this problem? I had a string of Java (see below) read in a smart German eHealth card. I have to extract the tag values and put them in local variables for further processing in my Java module. How to move forward without connecting to a database, it is enough to analyze the source - the string variable? Note that the lines are separated by only 0x0A.
    <?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
    <UC_PersoenlicheVersichertendatenXML CDM_VERSION="5.1.0" xmlns="http://ws.gematik.de/fa/vsds/UC_PersoenlicheVersichertendatenXML/v5.1">
        <Versicherter>
            <Versicherten_ID>X110101627</Versicherten_ID>
            <Person>
                <Geburtsdatum>19840717</Geburtsdatum>
                <Vorname>Johanna</Vorname>
                <Nachname>Düsterbehn</Nachname>
                <Geschlecht>W</Geschlecht>
                <StrassenAdresse>
                    <Postleitzahl>93055</Postleitzahl>
                    <Ort>Regensburg</Ort>
                    <Land>
                        <Wohnsitzlaendercode>D</Wohnsitzlaendercode>
                    </Land>
                    <Strasse>Sulzfeldstraße</Strasse>
                    <Hausnummer>7</Hausnummer>
                </StrassenAdresse>
            </Person>
        </Versicherter>
    </UC_PersoenlicheVersichertendatenXML>
    Thank you very much for your help,
    sincere friendships of

    Miklós HERBOLY
    java.lang.NoClassDefFoundError: XpathSampleClass (wrong name: XPathSampleClass)
    

    If you use my code sample in extenso, the class is named 'XPathSampleClass' (capital P), and of course the .class file must have the same name.

  • The analysis via an XML file

    Hello

    I work with an XML file that is generated through the API of Google Books.  I'll apologize in advance if I don't get quite accurate XML terminology - it's my first foray into some of the tags XML see  I'm reading a XML file in and attempt to send data:

    "< cfhttp url = 'http://www.google.com/books/feeds/volumes?q=john+grisham+the+firm & min-viewability biased =" method = "GET" > "

    < CFSET xmlfile = xmlparse (cfhttp.filecontent) >


    < cfset xmlsize = arraylen (xmlfile.feed.entry) >


    < cfloop from = "1" = "" #xmlsize # "index ="a">"

    < b > title: #xmlfile.feed.entry [a].title.xmlText # < /b > < br >
    < b > Format: #xmlfile.feed.entry [a].format.xmlText # < /b > < br >
    < b > author: #xmlfile.feed.entry [a].creator.xmlText # < /b > < br >
    < b > identifier1: #xmlfile.feed.entry [a].identifier.xmlText # < /b > < br >
    < b > identifier2: #xmlfile.feed.entry [a] .identify [2] .xmlText # < /b > < br >

    < / cfoutput >
    < / cfloop >

    It works pretty well.  Here's the problem: there is often a third identifier field (xmlfile.feed.entry [a] .identify [3] .xmlText)- but not always.

    I'm testing the existence of this field before you post.  I tried the following:

    < CFIF isdefined("xmlfile.feed.entry[a].identifier[3].xmlText") >
    is defined

    < CFELSE >

    is not defined
    < / cfif >

    Gives the typical error:

    Parameter 1 of function IsDefined, which is now xmlfile.feed.entry [a] .identify [3] .xmlText, must be a valid variable name syntactically.

    I would use structkeyExists, but I can't understand how the third node (?) using the reference code:

    < cfif structKeyExists(xmlfile.feed.entry[a],"identifier") > only works for xmlfile.feed.entry [a] .identify [1] .xmlText

    < cfif structKeyExists(xmlfile.feed.entry[a],"identifier[3]") > is not valid.

    So with strucktkeyexists, I can not understand how to properly reference the name of the variable...

    Any help?  Or the best ideas to verify the existence of this variable?

    The node you are looking at is an array, so:

    you need to do. At the present time, you test for the attribute 'xmltext' rather than to check its node parent exists.

    HTH.

  • Set the property to an XML string

    Hi all

    An another newbie question, sorry. I'm trying to set a certain XML attribute before adding it to a dataprovider of datagrid without too much luck. Here is the code I'm working on that does not work:

    var newType:XML = < type_equipement

    equip_type_id =""

    equip_manufacturer_id =""

    STR_NAME = "Click to add a new type" / >


    newType.attribute ('equip_manufacturer_id') = dgMfg.selectedItem.@equip_manufacturer_id;
    dgType.dataProvider.addItem (newType);

    Basically, I'm defining the Mfgid before it is added to the grid type. I mean, it's "Target of assignment must be a reference value".

    Any ideas?

    Thank you

    Rick

    attribute() returns an attribute and cannot be used to define an attribute.

    Use .@myattribute.

    If this post answers your question or assistance, please mark it as such.

    Greg Lafrance - Flex 2 and 3 certified ACE

    www.ChikaraDev.com

    Flex / development, training, AIR and Support Services

    
    
      
        
              
              
            ;
          private var xml2:XML =
            
              
              
            ;
    
          [Bindable] private var xlc:XMLListCollection;
          [Bindable] private var xlc2:XMLListCollection;
    
          private function init():void{
            xlc = new XMLListCollection(xml..equipment_type);
            xlc2 = new XMLListCollection(xml2..equipment_type);
          }
    
          private function addNew():void{
            var newType:XML = 
            newType.@equip_manufacturer_id = dgMfg.selectedItem.@equip_manufacturer_id;
            dgType.dataProvider.addItem(newType);
          }
        ]]>
      
      
      
        
          
        
      
    
    
  • The analysis of string to xml format

    Dear all,

    I have an OSB service that returns an xml string output form.
    I call this OSB service in BPEL but it fails because of the format of the string received by BPEL.

    How can I avoid it. I also try to convert string to xml but failing to do so.

    The pointers to that would be useful

    Thank you and best regards,
    MITS

    try to set the response from transport HTTP header
    http:content-type=text/XML
    application/xml or (even better)

    (and of course, you must make sure you have fn - bea: inlinedXml() function to convert the string in an XmlObject)

  • The analysis of the non-numeric characters in a string

    Hello

    I am communicating a robot to LabVIEW (2013) via TCP/IP and sockets. The robot is the server, and LV is the customer.

    I start with the target data in this format (in a string):

    "[0 ~ 100 ~ 0] ~ [0.96593 ~-0.25882 ~ 0 ~ 0] ~ [1 ~ 0 ~ 0 ~ 0] ~ [150 ~ 50]."

    [X, Y, Z], [Q1, Q2, Q3, Q4], [C1, C4, C6, Cx], [TCPVel, OrientVel] except replacement ',' (comma) with a ' ~ ' (tilde) because I load the target data in a spreadsheet which is a comma-delimited file.

    In LV, I take this string, the analysis of the chain and split individual items. I then pulled the singular elements as unique, 32-bit of real numbers. I take each one and convert them individually to a string, concatenate them and send them to the robot. The robot decompresses these raw bytes individually and converts them to a target of robot (position in space).

    I train (BT) check if the user has sent a bad character (non-digital) in the target data. Example of this is:

    [- 50 ~-150 ~ 0] ~ [0.96593 ~-0 ] [B2has5D882 ~ 0 ~ 0] ~ [1 ~-1 ~ 0 ~ 0] ~ [150 ~ 50]

    Now in BT, when I'm scanning the chain, these bad character becomes the entire element to zero and everything else then to zero as well. See attachment for example screen similar.

    My question is, my VI, I can analyze all non-numeric characters (that are inside the parentheses and characters that are NOT a ' ~ ' (tilde))? In this way, I can always get this item numbers and do not have this element or other items turn to zero?

    Thanks in advance for any help!

    Sorry for the question of the test

    SM


  • The analysis of the data of a string of series

    Alert LabVIEW Express 7

    Sorry, all I have to work with and there is no budget at the moment to upgrade.

    Hello, I am in phase 1 (data transfer reliable to labview) 24/7 of my small Miettinen, who is to display and record data environmental Lab 24/7 our Fisher 02-403 digital barometer that has a serial port. In fact, it came with the software, but no one here seems to like use it so I'll try to find something more intuitive. I can't find any info at all about I/O with this device, so I'm reverse engineering. I'm sure that you cannot write anything to this device only read.

    I started with the connection of the device and the interface with NOR measure and automation and received the following string: P,43,1019,44,31,01,0023.0\r\n.

    I tried to use the Labview 7 Express e/s Companion Instrument, selected 1 COMM, changed the timeout to 5000 (trial and error), added a step reading and analysis, ran and received the following string: P, 43,0999, 44,41, 01,0018.0, XX. After well guess, I determined that the values I have in bold change with the environment and the other 3 are always the same idea 9no what they represent). Alphabetical 1 in bold represents the tendency of climate S sunny = P = C sunny cloudy = etc., the value 2 is the atmospheric pressure in hPa, the 3rd is % relative humidity and the last is the temperature in Deg. C.

    At first, I tried to create simply chips for data I want and operation loop the wizard of e/s in awhile, but often error messages obtained suggesting that I need to define all the tokens in the string. I did it and it worked, then I opened the front panel to access the underlying schemas whence I came with the attached VI. I left this race for more than 24 hours, no error, seems good.

    My question on this forum is, can I simplify this VI losing a part of the analysis of the data that I don't need at this point?

    Please let me know if you can not access this VI maybe I can do a screenshot or something.

    Thank you

    Doug

    Yes, it can be simplified to just a bit.

    Since you are new to LabVIEW, you can start with the basic tutorial.

  • Update the xml string values.

    Hello

    I'm on 11.2.0.2 and got table with column nclob that stores the long xml string.

    {code}

    "<? XML version = "1.0" encoding = "UTF - 8"? >

    <? Fuego version = "6.5.2" build "101272 =? >

    < Game >

    < configuration name = "TEST database" type = subtype "SQL" = "DDORACLE" >

    < name = "jdbc.pool.idle_timeout property" value = "5" / > "

    < name = "jdbc.pool.entry.max property" value = "10" / > "

    < name = "oracle.dateEqualsTimestamp property" value = "false" / > "

    < name = "jdbc.schema property" value = "user1" / > "

    < name = "jdbc.host property" value = "hostname" / > "

    < property name = "user" value = "user1" / >

    < name = "jdbc.port property" value = "1521" / > "

    < name = "jdbc.pool.min property" value = "0" / > "

    < name = "jdbc.pool.maxopencursors property" value = "50" / > "

    < name = "oracle.sid property" value = "dbsid" / > "

    < property name = "password" value = "user101" / >

    < name = "jdbc.xa property" value = "false" / > "

    < name = "jdbc.pool.max property" value = "10" / > "

    < / configuration >

    < configuration name = 'TEST base2' type = subtype "SQL" = "DDORACLE" >

    < name = "jdbc.pool.idle_timeout property" value = "5" / > "

    < name = "jdbc.pool.entry.max property" value = "10" / > "

    < name = "oracle.dateEqualsTimestamp property" value = "false" / > "

    < name = "jdbc.schema property" value = "user2" / > "

    < name = "jdbc.host property" value = "hostname" / > "

    < property name = "user" value = "user2" / >

    < name = "jdbc.port property" value = "1521" / > "

    < name = "jdbc.pool.min property" value = "0" / > "

    < name = "jdbc.pool.maxopencursors property" value = "50" / > "

    < name = "oracle.sid property" value = "dbsid2" / > "

    < property name = "password" value = "user201" / >

    < name = "jdbc.xa property" value = "false" / > "

    < name = "jdbc.pool.max property" value = "10" / > "

    < / configuration >

    < / set >

    "

    {code}

    My goal is to update the value of the password so that it is equal to the value of jdbc.schema value < property name = "jdbc.schema" value = "user2" / > in this case user2 | " '01'

    < property name = "password" value = "user201" / > <-that's my goal.

    Concerning

    Greg

    Hello

    You can find a few methods here: How To: nodes of XML update with values from the same document. Oracle of Odie's blog

    They are not applicable to your options and version though.

    This is the first applied to your case:

    declare

    v_xmldoc xmltype.

    Start

    Select xmlparse (document to_clob (t.xmldoc))

    in v_xmldoc

    of my_nclob_table t

    where t.id = 1;

    for r in)

    Select idx, schema_name

    of my_nclob_table t

    xmltable)

    "/ game/configuration.

    passage v_xmldoc

    columns idx for ordinalite

    , schema_name varchar2 (30) path 'property[@name="jdbc.schema"]/@value '.

    )

    )

    loop

    Select updatexml)

    v_xmldoc

    , "configuration/game / ['|]» [to_char (r.idx) |'] Property[@name="password"]/@value'

    r.schema_name | '01'

    )

    in v_xmldoc

    Double;

    end loop;

    Update my_nclob_table t

    Set t.xmldoc = to_nclob (xmlserialize (dash, document v_xmldoc))

    where t.id = 1;

    end;

    /

    Here's another, using DOM:

    declare

    CLOB doc;

    p dbms_xmlparser. Analyzer;

    domdoc dbms_xmldom. DOMDocument;

    docnode dbms_xmldom. DOMNode;

    conf_list dbms_xmldom. DOMNodeList;

    conf_node dbms_xmldom. DOMNode;

    password_node dbms_xmldom. DOMNode;

    schema_name varchar2 (30);

    password_value varchar2 (256);

    Start

    Select to_clob (xmldoc)

    in the doc

    of my_nclob_table

    where id = 1;

    p: = dbms_xmlparser.newParser;

    dbms_xmlparser.parseClob (p, doc);

    domdoc: = dbms_xmlparser.getDocument (p);

    dbms_xmlparser.freeParser (p);

    docnode: = dbms_xmldom.makeNode (domdoc);

    conf_list: = dbms_xslprocessor.selectNodes (docnode, ' / game/configuration ');

    for i from 0... dbms_xmldom.GetLength (conf_list) - 1 loop

    conf_node: = dbms_xmldom.item(conf_list, i);

    dbms_xslprocessor.valueOf (conf_node, 'property[@name="jdbc.schema"]/@value', schema_name);

    password_node: = dbms_xslprocessor.selectSingleNode (conf_node, 'property[@name="password"]/@value');

    dbms_xmldom.setNodeValue (password_node, schema_name |) '01');

    end loop;

    dbms_xmldom.writeToClob (domdoc, doc);

    dbms_xmldom.freeDocument (domdoc);

    Update my_nclob_table t

    Set t.xmldoc = to_nclob (doc)

    where t.id = 1;

    end;

    /

    Post edited by: odie_63 - added DOM example

  • XML is not displayed as XML (hierarchical format) but as the xml string

    The condition is:

    To retrieve data of a table and are displayed in a table on a page in the ADF. One of the columns in the DB table is a "Type of XML", which stores the XML.  For each record in the table on page ADF, there is a hyper link, clicking on which the XML code must be displayed in a pop-up window.

    There is no problem to display data in the pop-up window.  But the popup does not display the data as a hierarchy XML (wrapping of lines at the end of each element).  It shows that the XML string...

    If someone could help?

    Concerning

    Christiane

    Add a property row to your inputtext to multi line. otherwise, you will never see the brakes of the line.

    Timo

  • How to get the value of the node xml strings

    Hello world

    I have the table with a varchar2 column that contains the XML nodes like this
    create table test (REC_ID Number(8), xml_value varchar2(4000));
    insert into test values (1000, '<id=''10'' data=''some data'' ref=''qq1''/> <id=''12'' data=''some other data'' ref=''qw2'' />');
    insert into test values (1111, '<id=''99'' data=''some X data'' ref=''rty''/> <id=''88'' data=''final data'' />  <id=''77'' data=''final data2'' />');
    for a line, there are several basic xml nodes. I want to get a result like this:
    Rec_ID  xml_value_ID  xml_value_DATA
    1000     10               some data
    1000     12               some other data
    1111     99               some X data
    1111     88               final data
    1111     77               final data2
    What would be the best way of performance to achieve that?

    Thank you very much

    I just thought that this could be done by tech oracle xml.

    It would be possible if it was XML data, but it is not.

    A valid XML element have a tag name, for example:

    
    

    That being said, we can cheat and generate a valid XML fragment out of your data by inserting the name of tag in front of 'id ':

    SQL> select t.rec_id
      2       , x.xml_value_id
      3       , x.xml_value_data
      4  from test t
      5     , xmltable(
      6         '/item'
      7         passing xmlparse(content replace(t.xml_value, '
    

    Second option, the analysis with regexp:

    SQL> select rec_id
      2       , regexp_substr(x.column_value, 'id=''([^'']+)''', 1, 1, null, 1) as value_id
      3       , regexp_substr(x.column_value, 'data=''([^'']+)''', 1, 1, null, 1) as value_data
      4  from test t,
      5       table(
      6         cast(
      7           multiset(
      8             select regexp_substr(t.xml_value, '<[^>]+>', 1, level)
      9             from dual
     10             connect by level <= regexp_count(t.xml_value, '<[^>]+>')
     11           )
     12           as sys.odcivarchar2list
     13         )
     14       ) x
     15  ;
    
       REC_ID VALUE_ID           VALUE_DATA
    --------- ------------------ -----------------------
         1000 10                 some data
         1000 12                 some other data
         1111 99                 some X data
         1111 88                 final data
         1111 77                 final data2
     
    

    (needs 11 Oracle for the function REGEXP_COUNT)

  • Need help to parse the xml string to populate the drop-down list

    Here is my: problem

    I have a hidden text field that contains the text of an xml

    <>facilities
    < building >
    < name > Building A < / name >
    < name > building B < / name >
    < name > building C < / name >
    < name > building D < / name >
    < name > building E < / name >
    < name > building F < / name >
    < name > building G < / name >
    < name > building H < / name >
    < / build >
    < / facilities >

    My goal is to read this with JavaScript xml string to populate a drop-down list with values of element (name). Does anyone know how script that?

    Attached is a sample .xdp

    See you soon,.

    Jesse

    Here is an example of change. I put the code click on the button, so you can see it in operation... You can place this code in the event that makes sense for you. I also added another field to show the DOM (this is for debugging purposes and you can remove this field if you want).

    Paul

  • the analysis of the sources of XML data

    I'm eager to read the file neo - datasources.xml and loops through the data sources. So I don't have a TYPE of CFFILE = 'READ' and got the content, and doesn't have xmlparse() to create the XML object. But then I'm stuck - CFDUMP shows me a structure within a table inside 'wddx encoded. I can't understand the syntax structure to go beyond "wddx encoded" and down inside to access the data. Can someone point me in the right direction? Thank you.

    Thank you. It is good to know that some problems have easy solutions.

  • The analysis of lists in PL/JSON

    I'm working on parsing a json string that is stored in a CLOB table in oracle 11g. This process belongs to a long analysis of routine which analyzes the data and stores the values in another table, and I just noticed that part of my data is not out. The json analysis and valid with JSONLint. So I simplified the analysis to try to find out where I'm wrong.

    So my json out of my table looks like this.

    {

    'JSON_data': {}

    "plant_id": "3006."

    "transmit_time": "2015-12-18 11:57:45."

    'messages': [{}

    'work_msg': {}

    "msg_time": "2015-06-23 04:54:17", ".

    "trigger_type':"interval. "

    'vert_correction': 358,3,

    'ch_latitude': 37.916302,

    'ch_longitude':-87.487365,

    'ch_heading': 212,3,.

    'ch_cable_port': 1029.79,

    'ch_cable_stbd': 348.63,.

    'ch_depth':-27.03,

    'slurry_velocity': 25.71,.

    'slurry_density': 1.02,.

    'ch_rpm': 205.49,.

    'ch_psi': 540.89.

    'prod_instantaneous': 0,

    'prod_cumulative': 1216.100000,

    'outfall_latitude': 37.915967,

    'outfall_longitude':-87.484369,

    'outfall_heading': 120,7,.

    "pump_entries": [{}

    'pump_name': 'main ',.

    'empty': 12.73.

    'outlet_psi': 22,88

    }],

    "spud_entries": [{}

    'position': 6

    }]

    },

    'pipe_length_event': {}

    "msg_time": "2015-06-23 04:54:17", ".

    "length_floating": 970

    }

    }]

    }

    }

    My analysis is properly find and do his thing with the data "work_msg". It's the data 'pipe_length_event' that I don't get to. Here is my pl/sql procedure.

    DECLARE

    vCONTENT CLOB.
    v_parent_json json;
    v_json_message_list json_list;
    v_json_message_list_value json_value;
    v_parent_json_value json_value;

    BEGIN

    SELECT CONTENT IN SJM_TEMP4 vCONTENT;

    v_parent_json: = json (vCONTENT);
    v_parent_json: = json (v_parent_json.get (1));

    v_json_message_list: = json_list (v_parent_json.get ('messages'));

    DBMS_OUTPUT. Put_line (v_json_message_list. (Count);

    for message_loop_counter in 1... loop v_json_message_list. Count
    v_parent_json_value: = json (v_json_message_list.get (message_loop_counter)) .get (1);

    If v_parent_json_value.mapname = "work_msg" then
    DBMS_OUTPUT. Put_line ('FOUND: work_msg');
    on the other
    DBMS_OUTPUT. Put_line (v_parent_json_value.mapname);
    end if;

    END LOOP;

    END;

    My dbms_output first gives me a sublist from 1 account. 2. not so my analysis does not yet recognize the 'pipe_length_event' as a sublist of "messages".

    How can I get data 'pipe_length_event' by using this procedure? I am almost sure that it worked in the past, so my first thought is that json is formatted differently. Is the json in the wrong format?

    Thanks in advance.

    They moved their forums to StackOverflow.  I had posted my question there before here.  In any case, I found my own answer.  JSON is not properly formatted.  The 'work_msg' was not closed correctly, and "pipe_length_event" has not been opened in a new list.  So once I had that all squared away he analysed very well.

    For reference, the correct formatting is below.

    {

    'JSON_data': {}

    "plant_id": "3006."

    "transmit_time": "2015-12-18 11:57:45."

    'messages': [{}

    'work_msg': {}

    "msg_time": "2015-06-23 04:54:17", ".

    "trigger_type':"interval. "

    'vert_correction': 358,3,

    'ch_latitude': 37.916302,

    'ch_longitude':-87.487365,

    'ch_heading': 212,3,.

    'ch_cable_port': 1029.79,

    'ch_cable_stbd': 348.63,.

    'ch_depth':-27.03,

    'slurry_velocity': 25.71,.

    'slurry_density': 1.02,.

    'ch_rpm': 205.49,.

    'ch_psi': 540.89.

    'prod_instantaneous': 0,

    'prod_cumulative': 1216.100000,

    'outfall_latitude': 37.915967,

    'outfall_longitude':-87.484369,

    'outfall_heading': 120,7,.

    "pump_entries": [{}

    'pump_name': 'main ',.

    'empty': 12.73.

    'outlet_psi': 22,88

    }],

    "spud_entries": [{}

    'position': 6

    }]

    }

    }, {

    'pipe_length_event': {}

    "msg_time": "2015-06-23 04:54:17", ".

    "length_floating": 970

    }

    }]

    }

    }

  • Select the value of the field in the database column stores xml as a varchar

    Hi all

    Oracle version is 11 GR 2.

    I have a column of a database in which we store the XML string varchar2.

    "I need to extract only newvalue when field nameof the property ="modifiedBy'. '.

    In this case my answer would be - maker16

    My XML is as below.

    with t as
    (
    select '<?xml version="1.0" encoding="UTF-8"?>
    <changeinfo><property name="checkedOn" newvalue="03/21/2013 15:51:11" oldvalue="03/21/2013"/><property name="modifiedOn" newvalue="07/22/2013 14:04:55" oldvalue="03/21/2013"/><property name="phoneNo" newvalue="9942251"/><property name="modifiedBy" newvalue="maker16" oldvalue="clarissamaker"/></changeinfo>' as datacolumn
    FROM dual
    )
    select extractvalue(datacolumn,'/changeinfo/property name[@property name="modifiedBy"]/newvalue') from t;
    
    

    How to write a select statement to get the above result?

    Thank you

    SID

    You can do it like

    1. get the name and NewValue as columns and then create a filter with the WHERE clause.

    2. or you can filter when you set the path itself.

    --I have not applied the WHERE clause to filter the NAME. You can do that.
    
    SQL> with t as
      2  (
      3  select '
      4  
      5  
      6  
      7  
      8  
      9  ' as datacolumn
     10  FROM dual
     11  )
     12  select t1.name, t1.newval
     13    from t
     14       , xmltable
     15         (
     16            '/changeinfo/property' passing xmltype(datacolumn)
     17            columns
     18              name varchar2(100) path '@name',
     19              newval varchar2(100) path '@newvalue'
     20         ) t1;
    
    NAME                           NEWVAL
    ------------------------------ ------------------------------
    checkedOn                      03/21/2013 15:51:11
    modifiedOn                     07/22/2013 14:04:55
    phoneNo                        9942251
    modifiedBy                     maker16
    
    --This filters the Name attribute in the path definition itself.
    
    SQL> with t as
      2  (
      3  select '
      4  
      5  
      6  
      7  
      8  
      9  ' as datacolumn
     10  FROM dual
     11  )
     12  select t1.newval
     13    from t
     14       , xmltable
     15         (
     16            '/changeinfo/property[@name="modifiedBy"]' passing xmltype(datacolumn)
     17            columns
     18              newval varchar2(100) path '@newvalue'
     19         ) t1;
    
    NEWVAL
    ------------------------------
    maker16
    

    And the $ 1 million question would be why VARCHAR2 type of XML data.

  • Parse the JSON using PL/SQL string

    I created a script that reads data from the Mobile App DB (which is based on MongoDB) of Oracle SQL Developer. The result is the string JSON stored in l_response_text VARCHAR2 (32767);

    The string has the format such as:


    [{"Postcode":"47100","OutletCode":"128039251","MobileNumber":"0123071303","_createdAt":"2014-11-10 06:12:49.837","_updatedAt":"2014-11-10 06:12:49.837"}, {"Postcode":"32100","OutletCode":"118034251", ..... ]
    
    
    
    
    

    However, I need to analyze this l_response_text such that each table will in his column in a table called appery_test. appery_test table has the same number of columns pairs JSON and in the same order (e.g. name of the first column is 'postal Code')

    I searched and I found most of the results on the analysis of the Oracle in JSON table and not the other way around. I found, however, that link which is somewhat similar to my problem. However, the library suggested in the answer doesn't have an example on how to use it to insert JSON into conventional table using PL/SQL.

    N.B.: I use g 11 and not 12 c. If the functions built by are not available for me.

    Thank you very much

    Sorry, I am a novice in this area too.

    However, it worked for me:

    declare

    l_list json_list;

    l_data CLOB;

    Code postal clob;

    l_val json_value;

    Start

    -json data recovery

    Select the data in l_data from jsons where id = 1;

    l_list: = json_list (l_data);

    I'm looping 1.l_list.count

    l_val: = json_ext.get_json_value (json (l_list.get (i)), 'Postcode');

    DBMS_LOB.CREATETEMPORARY (zip, true, 2);

    json_value.get_string (l_val, postal code);

    -Put some things

    dbms_output.put_line (DBMS_LOB. GetLength (Postcode));

    dbms_output.put_line (dbms_lob.substr (postal code, 20, 1));

    DBMS_LOB.freeTemporary (Postcode);

    end loop;

    end;

    47328

    9J / / 4AAQSkZJRgABAQAA

    Added dbms_lob.freetemporary (postcode);

Maybe you are looking for