2016-03-24 3 views
0

私は2つの列を持つSQLテーブルを持っています。 1つはIDで、もう1つは大きなXMLドキュメントです(InfoPathドキュメントからSQLにインポートしたもの)。私は、異なるノードからデータを取り出すselect文を持っています。いくつかのノードにはHTMLがあります。 selectステートメントを使用してノード値を取得すると、ノードの値をすべて取り除き、テキストを返します。これらはRTFフィールドです。誰もがマークアップを保持するためにそれを返す方法を知っていますか?HTMLマークアップを使用したSQL XMLデータ型

私のselect文:

WITH XMLNAMESPACES (
'http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-01-06T15:50:09' AS my 
) 

SELECT 
id, 
rec.value('(/my:myFields/my:RoutineCare/my:field2837)[1]', 'nvarchar(max)') AS RoutNotes 
FROM 
tblXml 
WHERE id = 14 
GO 

そして、何それはあなたが以下を参照してくださいHTML、そのマークアップ内にあるテキストのみが含まれていませんが返されます。

SQLテーブル内のXML:

<my:field2837> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:space="preserve"> 
    <div> 
     <font face="Times New Roman" size="1"> 
     <font face="Times New Roman" size="1"> 
     <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="color:#1e3c7b"><font size="1" /></span></p> 
     <p class="MsoNormal" style="margin:0in 0in 0pt"><font size="2"><span style="color:#1e3c7b"><font face="Arial">INN:  100%, deductible waived<br /></font></span></font></p> 
     <p class="MsoNormal" style="margin:0in 0in 0pt"><font size="3"><font face="Arial"><font size="2" /></font></font> </p> 
     <p class="MsoNormal" style="margin:0in 0in 0pt"><font size="3"><font face="Arial"><font size="2">This plan utilizes the Mandated Benefit list - See Health Care Reform - Preventive Care Coverage PPM for age limits and benefits.<br /><br /></font></font></font></p></font> 
     </font> 
     <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-family:&amp;apos;color:red"><font size="3">This plan offers Expanded Women’s Health Services as outlined in UMR’s recommendation chart.  See “Health Care Reform – Women’s Expanded Preventive Health Provision” PPM for specifics and benefits</font></span></p> 
     <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-family:&amp;apos;color:red"><font size="3" /></span> </p><span style="font-family:&amp;apos;color:red"> 
     <p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt"><font color="#000000"><font face="Arial"><b><u><span style="background:lime;font-size:10pt">Routine Covered Services</span></u></b><span style="background:lime;font-size:10pt">:<span>  </span>apply In-Network benefits for services rendered by an Out-of-Network provider if services are not available from an In-Network provider within 50 miles from the covered member’s residence. U&amp;C applies</span></font></font></p></span><span style="font-family:&amp;apos;color:#1e3c7b;font-size:10pt" /></div> 
    </html> 
</my:field2837> 

答えて

0

誰もがこれまでに知りたい場合は、私はそれを考え出した:

CONVERT(NVARCHAR(MAX)、t.rtf1.query( '/私:マイフィールド/私:救急車/私:マイフィールド/私::救急車 ')T(RTF1 AS field2618 /子供:: * /私の'))AmbNotes

AS tblXml CROSS FROMはrec.nodesを(適用] ) GO

関連する問題