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

Oracle के साथ HTML तालिका को पार्स करें

आपका path एक td की तलाश में है tr . के तहत; लेकिन दो हैं, इसलिए "बहु-आइटम अनुक्रम मिला" त्रुटि जो आप देख रहे हैं। आप प्रत्येक td . का संदर्भ दे सकते हैं अपनी स्थिति के अनुसार टैग करें, जैसे td[1] आदि। यह टेबल संरचना पर बहुत निर्भर है, हालांकि उम्मीद के मुताबिक।

इस विशिष्ट उदाहरण से आप यह कर सकते हैं:

with tbl as
(
    select xmltype('
        <table>
          <tbody>
            <tr class="blue"><td>code</td><td>rate</td></tr>
            <tr class="gray_1"><td><span>USD</span><em>1</em></td><td>476.16</td></tr>
            <tr class="gray_2"><td><span>AUD</span><em>1</em></td><td>327.65</td></tr>
            <tr class="gray_9"><td><span>IRR</span><em>100</em></td><td>1.13</td></tr>
            <tr class="blue"><td>some comment</td><td>some comment</td></tr>
            <tr class="gray_1"><td><span>EUR</span><em>1</em></td><td>526.54</td></tr>
          </tbody>
        </table>
    ') xml_data from dual
)
select
    x.class, x.currency, x.amount, to_number(x.rate) as rate
from
    tbl
cross join
    xmltable('/table/tbody/tr'
        passing tbl.xml_data
        columns
            class varchar2(10) path '@class',
            currency varchar2(3) path 'td[1]/span',
            amount number path 'td[1]/em',
            rate varchar2(50) path 'td[2]'
    ) x
where
    x.currency is not null

जो मिलता है:

CLASS      CUR     AMOUNT       RATE
---------- --- ---------- ----------
gray_1     USD          1     476.16
gray_2     AUD          1     327.65
gray_9     IRR        100       1.13
gray_1     EUR          1     526.54

हालांकि इसे तोड़ने के लिए एचटीएमएल में ज्यादा बदलाव नहीं होगा। यह उत्तर देखें कुछ कारणों से यह नाजुक है, और आम तौर पर HTML को XML के रूप में पार्स करने का प्रयास करना नासमझी क्यों माना जाता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01830:संपूर्ण इनपुट स्ट्रिंग को परिवर्तित करने से पहले दिनांक प्रारूप चित्र समाप्त होता है

  2. JMeter JDBC पूल कॉन्फ़िगरेशन

  3. Oracle से SQL सर्वर में एक छवि सम्मिलित करना

  4. Oracle एक दृश्य में सभी स्तंभों के लिए तारांकन को प्रतिस्थापित करता है

  5. मैं Oracle SQL डेवलपर में BLOB (JSON युक्त) कैसे संपादित करूं?