Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm trying to fetch specific data from an XML Document using sql statement. This document is as follows:

<?xml version="1.0" encoding="Shift-JIS" ?>
<Ophthalmology xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:nsCommon="http://www.joia.or.jp/standardized/namespaces/Common" xmlns:nsREF="http://www.joia.or.jp/standardized/namespaces/REF" xsi:schemaLocation="http://www.joia.or.jp/standardized/namespaces/Common Common_schema.xsd http://www.joia.or.jp/standardized/namespaces/REF REF_schema.xsd">
<nsCommon:Common>
<nsCommon:Company>TOPCON</nsCommon:Company>
<nsCommon:ModelName>KR-800</nsCommon:ModelName>
<nsCommon:MachineNo>01</nsCommon:MachineNo>
<nsCommon:ROMVersion>1.05.08</nsCommon:ROMVersion>
<nsCommon:Version>1.2</nsCommon:Version>
<nsCommon:Date>2016-09-17</nsCommon:Date>
<nsCommon:Time>01:17:35</nsCommon:Time>
<nsCommon:Patient>
<nsCommon:No.>0006</nsCommon:No.>
<nsCommon:ID>0006</nsCommon:ID>
<nsCommon:FirstName></nsCommon:FirstName>
<nsCommon:MiddleName></nsCommon:MiddleName>
<nsCommon:LastName></nsCommon:LastName>
<nsCommon:Sex></nsCommon:Sex>
<nsCommon:Age></nsCommon:Age>
<nsCommon:DOB></nsCommon:DOB>
<nsCommon:NameJ1></nsCommon:NameJ1>
<nsCommon:NameJ2></nsCommon:NameJ2>
</nsCommon:Patient>
<nsCommon:Operator>
<nsCommon:No.></nsCommon:No.>
<nsCommon:ID></nsCommon:ID>
</nsCommon:Operator>
</nsCommon:Common>
<nsREF:Measure type="REF">
<nsREF:VD unit="mm">13.75</nsREF:VD>
<nsREF:DiopterStep unit="D">0.25</nsREF:DiopterStep>
<nsREF:AxisStep unit="deg">1</nsREF:AxisStep>
<nsREF:CylinderMode>-</nsREF:CylinderMode>
<nsREF:REF>
<nsREF:R>
<nsREF:List No="1">
<nsREF:Sphere unit="D">0.50</nsREF:Sphere>
<nsREF:Cylinder unit="D">-1.25</nsREF:Cylinder>
<nsREF:Axis unit="deg">178</nsREF:Axis>
<nsREF:SE unit="D">-0.25</nsREF:SE>
<nsREF:CataractMode></nsREF:CataractMode>
<nsREF:IOLMode></nsREF:IOLMode>
<nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
</nsREF:List>
<nsREF:List No="2">
<nsREF:Sphere unit="D">0.50</nsREF:Sphere>
<nsREF:Cylinder unit="D">-1.00</nsREF:Cylinder>
<nsREF:Axis unit="deg">177</nsREF:Axis>
<nsREF:SE unit="D">0.00</nsREF:SE>
<nsREF:CataractMode></nsREF:CataractMode>
<nsREF:IOLMode></nsREF:IOLMode>
<nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
</nsREF:List>
<nsREF:Median>
<nsREF:Sphere unit="D">0.50</nsREF:Sphere>
<nsREF:Cylinder unit="D">-1.00</nsREF:Cylinder>
<nsREF:Axis unit="deg">177</nsREF:Axis>
<nsREF:SE unit="D">0.00</nsREF:SE>
</nsREF:Median>
</nsREF:R>
<nsREF:L>
<nsREF:List No="1">
<nsREF:Sphere unit="D">0.50</nsREF:Sphere>
<nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
<nsREF:Axis unit="deg">179</nsREF:Axis>
<nsREF:SE unit="D">0.25</nsREF:SE>
<nsREF:CataractMode></nsREF:CataractMode>
<nsREF:IOLMode></nsREF:IOLMode>
<nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
</nsREF:List>
<nsREF:List No="2">
<nsREF:Sphere unit="D">0.50</nsREF:Sphere>
<nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
<nsREF:Axis unit="deg">179</nsREF:Axis>
<nsREF:SE unit="D">0.25</nsREF:SE>
<nsREF:CataractMode></nsREF:CataractMode>
<nsREF:IOLMode></nsREF:IOLMode>
<nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
</nsREF:List>
<nsREF:List No="3">
<nsREF:Sphere unit="D">0.50</nsREF:Sphere>
<nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
<nsREF:Axis unit="deg">179</nsREF:Axis>
<nsREF:SE unit="D">0.25</nsREF:SE>
<nsREF:CataractMode></nsREF:CataractMode>
<nsREF:IOLMode></nsREF:IOLMode>
<nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
</nsREF:List>
<nsREF:Median>
<nsREF:Sphere unit="D">0.50</nsREF:Sphere>
<nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
<nsREF:Axis unit="deg">179</nsREF:Axis>
<nsREF:SE unit="D">0.25</nsREF:SE>
</nsREF:Median>
</nsREF:L>
</nsREF:REF>
<nsREF:PD>
<nsREF:WorkingDistance unit="cm"></nsREF:WorkingDistance>
<nsREF:Distance unit="mm">68.50</nsREF:Distance>
<nsREF:Near unit="mm">68.50</nsREF:Near>
</nsREF:PD>
</nsREF:Measure>
</Ophthalmology>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
289 views
Welcome To Ask or Share your Answers For Others

1 Answer

Oracle Setup

CREATE TABLE data ( xml XMLType );

DECLARE
  xmlString CLOB := '<?xml version="1.0" encoding="Shift-JIS" ?>
<Ophthalmology xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:nsCommon="http://www.joia.or.jp/standardized/namespaces/Common" xmlns:nsREF="http://www.joia.or.jp/standardized/namespaces/REF" xsi:schemaLocation="http://www.joia.or.jp/standardized/namespaces/Common Common_schema.xsd http://www.joia.or.jp/standardized/namespaces/REF REF_schema.xsd">
    <nsCommon:Common>
        <nsCommon:Company>TOPCON</nsCommon:Company>
        <nsCommon:ModelName>KR-800</nsCommon:ModelName>
        <nsCommon:MachineNo>01</nsCommon:MachineNo>
        <nsCommon:ROMVersion>1.05.08</nsCommon:ROMVersion>
        <nsCommon:Version>1.2</nsCommon:Version>
        <nsCommon:Date>2016-09-17</nsCommon:Date>
        <nsCommon:Time>01:17:35</nsCommon:Time>
        <nsCommon:Patient>
            <nsCommon:No.>0006</nsCommon:No.>
            <nsCommon:ID>0006</nsCommon:ID>
            <nsCommon:FirstName></nsCommon:FirstName>
            <nsCommon:MiddleName></nsCommon:MiddleName>
            <nsCommon:LastName></nsCommon:LastName>
            <nsCommon:Sex></nsCommon:Sex>
            <nsCommon:Age></nsCommon:Age>
            <nsCommon:DOB></nsCommon:DOB>
            <nsCommon:NameJ1></nsCommon:NameJ1>
            <nsCommon:NameJ2></nsCommon:NameJ2>
        </nsCommon:Patient>
        <nsCommon:Operator>
            <nsCommon:No.></nsCommon:No.>
            <nsCommon:ID></nsCommon:ID>
        </nsCommon:Operator>
    </nsCommon:Common>
    <nsREF:Measure type="REF">
        <nsREF:VD unit="mm">13.75</nsREF:VD>
        <nsREF:DiopterStep unit="D">0.25</nsREF:DiopterStep>
        <nsREF:AxisStep unit="deg">1</nsREF:AxisStep>
        <nsREF:CylinderMode>-</nsREF:CylinderMode>
        <nsREF:REF>
            <nsREF:R>
                <nsREF:List No="1">
                    <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                    <nsREF:Cylinder unit="D">-1.25</nsREF:Cylinder>
                    <nsREF:Axis unit="deg">178</nsREF:Axis>
                    <nsREF:SE unit="D">-0.25</nsREF:SE>
                    <nsREF:CataractMode></nsREF:CataractMode>
                    <nsREF:IOLMode></nsREF:IOLMode>
                    <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                </nsREF:List>
                <nsREF:List No="2">
                    <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                    <nsREF:Cylinder unit="D">-1.00</nsREF:Cylinder>
                    <nsREF:Axis unit="deg">177</nsREF:Axis>
                    <nsREF:SE unit="D">0.00</nsREF:SE>
                    <nsREF:CataractMode></nsREF:CataractMode>
                    <nsREF:IOLMode></nsREF:IOLMode>
                    <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                </nsREF:List>
                <nsREF:Median>
                    <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                    <nsREF:Cylinder unit="D">-1.00</nsREF:Cylinder>
                    <nsREF:Axis unit="deg">177</nsREF:Axis>
                    <nsREF:SE unit="D">0.00</nsREF:SE>
                </nsREF:Median>
            </nsREF:R>
            <nsREF:L>
                <nsREF:List No="1">
                    <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                    <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                    <nsREF:Axis unit="deg">179</nsREF:Axis>
                    <nsREF:SE unit="D">0.25</nsREF:SE>
                    <nsREF:CataractMode></nsREF:CataractMode>
                    <nsREF:IOLMode></nsREF:IOLMode>
                    <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                </nsREF:List>
                <nsREF:List No="2">
                    <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                    <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                    <nsREF:Axis unit="deg">179</nsREF:Axis>
                    <nsREF:SE unit="D">0.25</nsREF:SE>
                    <nsREF:CataractMode></nsREF:CataractMode>
                    <nsREF:IOLMode></nsREF:IOLMode>
                    <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                </nsREF:List>
                <nsREF:List No="3">
                    <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                    <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                    <nsREF:Axis unit="deg">179</nsREF:Axis>
                    <nsREF:SE unit="D">0.25</nsREF:SE>
                    <nsREF:CataractMode></nsREF:CataractMode>
                    <nsREF:IOLMode></nsREF:IOLMode>
                    <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                </nsREF:List>
                <nsREF:Median>
                    <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                    <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                    <nsREF:Axis unit="deg">179</nsREF:Axis>
                    <nsREF:SE unit="D">0.25</nsREF:SE>
                </nsREF:Median>
            </nsREF:L>
        </nsREF:REF>
        <nsREF:PD>
            <nsREF:WorkingDistance unit="cm"></nsREF:WorkingDistance>
            <nsREF:Distance unit="mm">68.50</nsREF:Distance>
            <nsREF:Near unit="mm">68.50</nsREF:Near>
        </nsREF:PD>
    </nsREF:Measure>
</Ophthalmology>';
BEGIN
  INSERT INTO DATA ( xml ) VALUES ( XMLType( xmlString ) );
END;
/

COMMIT;

Query:

SELECT x.*
FROM Data d,
     XMLTABLE (
       XMLNAMESPACES(
         'http://www.joia.or.jp/standardized/namespaces/Common' AS "nsCommon",
         'http://www.joia.or.jp/standardized/namespaces/REF' AS "nsREF"
       ),
       '//Ophthalmology/nsREF:Measure/nsREF:REF/nsREF:R/nsREF:Median'
       PASSING d.xml
       COLUMNS RSphere   NUMBER(5,2) PATH '//nsREF:Sphere',
               RCylinder NUMBER(5,2) PATH '//nsREF:Cylinder',
               RAxis     NUMBER(5,2) PATH '//nsREF:Axis',
               RSE       NUMBER(5,2) PATH '//nsREF:SE'
     ) x;

Output:

   RSPHERE  RCYLINDER      RAXIS        RSE
---------- ---------- ---------- ----------
        .5         -1        177          0 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...