-1

xml.modify別名の名前空間を持つノードがある場合にXML 属性値を変更する方法

たとえば、XML は次のとおりです。

<ar:archive xmlns:d="http://guidewire.com/cc/p04_00406_a09_01855_00558/domain" 
            xmlns:o="http://guidewire.com/cc/p04_00406_a09_01855_00558/other" 
            xmlns:ar="http://guidewire.com/archiving" 
            xmlns:i="http://guidewire.com/importing" 
            platform-major="4" platform-minor="406" 
            application-major="9" application-minor="1855" extension="558" 
            importing-schema-version="2.0" archving-schema-version="1.0" 
            root-ref="root" archive-date="2012-10-04T02:02:30.44-05:00">
   <d:Company id="d55" FaxPhone="1234567890" /> 
</ar:archive>

FaxPhoneそして、 toの値を変更したいと思います1234

4

1 に答える 1

0

xml.modify、これに SQL Server を使用している可能性があることを示しているようです - 正しいですか??

もしそうなら、あなたが探しているものを達成するためにこのコードを使用してください:

// define XML namespace aliases for the two relevant namespaces
;WITH XMLNAMESPACES('http://guidewire.com/cc/p04_00406_a09_01855_00558/domain' AS d, 
                    'http://guidewire.com/archiving' AS ar)
UPDATE 
    dbo.YourTableNameHere
SET 
    YourXmlColumn.modify('replace value of (ar:archive/d:Company/@FaxPhone)[1] with "1234"')
WHERE 
    (some condition here to find the right row in the table ...)
于 2012-11-23T11:05:28.853 に答える