0

SQL Server の XML.modify を使用して XML ドキュメントを変更したいと考えています。私の問題は、XML ドキュメントがエスケープされた XML を使用しているため、"<" が "<" として表示され、">" が ">" として表示されることです。エスケープされた XML で囲まれた要素の値を設定できるかどうかを知りたいです。私が扱っているものの例は以下のとおりです。

Declare @myDoc as xml;
Set @myDoc = '<Root>       
                <ProductDescription ProductID="1" ProductName="Road Bike">       
                    <Features>
                        <BikeLight>False</BikeLight>
                        &lt;BikeHorn&gt;True&lt;/BikeHorn&gt;    
                    </Features>       
                </ProductDescription>       
            </Root>'  ;

を使用して BikeLight 要素の値を編集できることを知っています

set @myDoc.modify('replace value of (/Root/ProductDescription/Features/BikeLight/text())[1] with "True"')

しかし、BikeHorn で同じことをしようとすると、変更されていない XML ドキュメントしか返されません。エスケープされた XML で囲まれた要素の値を変更することは可能ですか? どんな助けでも感謝します、ありがとう。また、私の実際のコードでは、機能の下のすべての要素がエスケープされた XML で囲まれていることに注意してください。

4

1 に答える 1

0

問題は、というノードがなく、子ノードに加えて独自のテキストを含む<BikeHorn>複雑なノードがあることです。したがって、次の値を変更するために変更する必要があります。<Features><BikeLight><Features>BikeHorn

set @myDoc.modify('
replace value of (/Root/ProductDescription/Features/text())[1]
with "&lt;BikeHorn&gt;False&lt;/BikeHorn&gt;"')
于 2015-02-10T19:20:44.570 に答える