Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL में अज्ञात नामस्थानों के साथ XML को पार्स करना

मुझे पता है कि यह बहुत पुराना है, लेकिन मैंने इसे आज देखा और उस दर्द को याद किया जिसे मैंने नामित एक्सएमएल से निपटने का प्रयास किया था। मेरा समाधान एक्सएसएलटी ट्रांसफॉर्म के साथ नेमस्पेस को अलग करना और इसे सादे पुराने एक्सएमएल के रूप में संसाधित करना था। मैं यह करने के लिए उपयोग किया जाने वाला कार्य है:

function remove_namespace( i_xml in xmltype )
  return xmltype
is
  v_xml xmltype default i_xml;
  v_xsl varchar2(32767);
begin
  v_xsl := '<?xml version="1.0" encoding="UTF-8"?>
        <xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
        <xsl:template match="*">
          <!-- remove element prefix (if any) -->
          <xsl:element name="{local-name()}">
          <!-- process attributes -->
          <xsl:for-each select="@*">
            <!-- remove attribute prefix (if any) -->
            <!-- this if filters out any xmlns="" atts that have no
                 namespace prefix in the xml -->
            <xsl:if test="(local-name() != ''xmlns'')">
              <xsl:attribute name="{local-name()}">
                <xsl:value-of select="."/>
              </xsl:attribute>
            </xsl:if>
          </xsl:for-each>
         <xsl:apply-templates/>
         </xsl:element>
         </xsl:template>
         </xsl:stylesheet>';
  return v_xml.transform(xmltype(v_xsl));
end;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - DBMS_MVIEW.REFRESH के साथ 'मांग पर ताज़ा बल' दृश्य को ताज़ा करते समय क्या होता है

  2. ORA-00060:संसाधन की प्रतीक्षा करते समय गतिरोध का पता चला

  3. अपवाद को कैसे संभालें और शेष कथनों को कैसे निष्पादित करें?

  4. Oracle में एक नई लाइन को कैसे बदलें

  5. दिए गए तालिका डेटा के साथ वांछित आउटपुट