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

SQL सर्वर कॉलम में html से डेटा कैसे प्राप्त करें

यदि आपका HTML वास्तव में XHTML का अनुपालन करता है, और यदि आपके पास HTML एक XML में संग्रहीत है अपने SQL सर्वर तालिका में कॉलम, फिर आप XQuery का उपयोग करके T-SQL में इससे अपने लेबल पुनर्प्राप्त कर सकते हैं:

DECLARE @HtmlTbl TABLE (ID INT IDENTITY, Html XML)

INSERT INTO @HtmlTbl(Html) VALUES('<ektdesignns_choices ektdesignns_nodetype="element" title="How many gigs do you play each month?" ektdesignns_caption="How many gigs do you play each month?" name="ektpoll1303074024421" ektdesignns_name="ektpoll1303074024421" id="ektpoll1303074024421">
  <ol contenteditable="false" onkeypress="design_validate_choice(1, -1, this, ''Options are required.'')" onclick="design_validate_choice(1, -1, this, ''Options are required.'')" onblur="design_validate_choice(1, -1, this, ''Options are required.'')" ektdesignns_validation="choice-req" ektdesignns_maxoccurs="1" ektdesignns_minoccurs="1" unselectable="on" title="How many gigs do you play each month?" class="design_list_vertical">
    <li>
      <input type="radio" ektdesignns_nodetype="item" name="ektpoll1303074024421" value="1 or fewer_1" title="1 or fewer" id="ID2504263" />
      <label contenteditable="true" unselectable="off" for="ID2504263">1 or fewer</label>
    </li>
    <li>
       <input type="radio" ektdesignns_nodetype="item" name="ektpoll1303074024421" value="2-4_2" title="2-4" id="ID5115606" />
       <label contenteditable="true" unselectable="off" for="ID5115606">2-4</label>
    </li>
    <li>
        <input type="radio" ektdesignns_nodetype="item" name="ektpoll1303074024421" value="5-7_3" title="5-7" id="ID477116" />
        <label contenteditable="true" unselectable="off" for="ID477116">5-7</label>
    </li>
    <li>
        <input type="radio" ektdesignns_nodetype="item" name="ektpoll1303074024421" value="8 or more_4" title="8 or more" id="ID5515606" />
        <label contenteditable="true" unselectable="off" for="ID5515606">8 or more</label>
    </li>
  </ol></ektdesignns_choices><input type="submit" value="Vote" />')

यह सभी <label> . को पुनः प्राप्त करेगा आपके (X)Html से एक XML स्ट्रिंग के रूप में तत्व:

SELECT
    Html.query('//label')
FROM @HtmlTbl 
WHERE ID = 1

आउटपुट:

<label contenteditable="true" unselectable="off" for="ID2504263">1 or fewer</label>
<label contenteditable="true" unselectable="off" for="ID5115606">2-4</label>
<label contenteditable="true" unselectable="off" for="ID477116">5-7</label>
<label contenteditable="true" unselectable="off" for="ID5515606">8 or more</label>

या यह <label> . की सभी सामग्री का चयन करेगा टैग, प्रति पंक्ति एक:

SELECT
    C.value('(.)[1]', 'varchar(1000)')
FROM @HtmlTbl 
CROSS APPLY Html.nodes('//label') AS T(C)
WHERE ID = 1

आउटपुट:

1 or fewer
2-4
5-7
8 or more


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्तंभ मान के आधार पर पंक्तियाँ बनाना

  2. पंक्तियों के बच्चे होने पर डेटाबेस में पंक्तियों की प्रतिलिपि बनाना

  3. डेटाबेस में डुप्लिकेट अस्थायी रिकॉर्ड मर्ज करें

  4. डिफ़ॉल्ट सिस्टमडेट को ymd से dmy . में कैसे बदलें

  5. मैं टीएसक्यूएल स्टेटमेंट की वैधता की प्रोग्रामेटिक रूप से जांच (पार्स) कैसे कर सकता हूं?