क्या आप कृपया मुझे यह समझने में मदद कर सकते हैं कि मैं एक से अधिक विशेषताओं के साथ एक्सएमएल/एचटीएमएल कैसे उत्पन्न कर सकता हूं

मेरे पास यह एसक्यूएल कोड है

select
    [td/@align] = 'center', td = format(GETDATE(),'dd.MM.yyyy'), null
for xml path('tr')

यह कोड इसके परिणाम के रूप में वापस आता है:

<tr>
  <td align="center">16.09.2020</td>
</tr>

और मुझे आवश्यकता है

<tr>
  <td align="center" style="background-color: red;">16.09.2020</td>
</tr>

यह कैसे करना है यह नहीं पता ...

अगर मैं कुछ इस तरह का उपयोग करने का प्रयास करता हूं [td/@align/@style] - SQL त्रुटि उत्पन्न कर रहा है

कॉलम नाम 'td/@align/@style' में एक अमान्य XML पहचानकर्ता है, जैसा कि FOR XML द्वारा आवश्यक है; '@' (0x0040) गलती का पहला अक्षर है

1
ashpakov 16 सितंबर 2020, 14:40

1 उत्तर

सबसे बढ़िया उत्तर

क्या आप इसे ढूंढ रहे हैं:

select 'center' AS [td/@align]
       ,'background-color: red;'  AS [td/@style]
       ,format(GETDATE(),'dd.MM.yyyy') AS [td]       
for xml path('tr')

यह यह पैदा करता है:

<tr>
    <td align="center" style="background-color: red;">16.09.2020</td>
</tr>

आप एक पंक्ति कॉलम को xml टैग मान और विशेषताओं के रूप में सोच सकते हैं, जिन्हें उपनाम AS का उपयोग करके समूहीकृत किया जाता है। इसलिए, अधिक विशेषताओं के लिए, संबंधित उपनाम - td/@... के साथ बस नया मान जोड़ें।

5
gotqn 16 सितंबर 2020, 14:47