0

私は SQL で XML クエリを使用するのが初めてで、型の値を取得する方法に関する Sql クエリで誰かが私を助けてくれることを望んでいました。

以下に示すようなxml列データがあります

<mnt:job xmlns:mnt="http://namespaces.aada.be/4.0/maintenance"
xmlns:order="http://namespaces.aadasoftware.net/4.4/maintenance/order" 
mnt:version="1.0" mnt:type="Aada.Core.Orders.DownloadOrder, Aada.Core">
<mnt:targets>
<mnt:target mnt:id="bf321a20-8283-4760-a683-57892d8b9e12" mnt:status="Succeeded" 
mnt:duration="00:00:00" mnt:message="" mnt:attempt="1">
<mnt:custom>
 .................

value("Aada.Core.Orders.DownloadOrder, Aada.Core")内部を取得したかったのmnt:typeですが、クエリの書き方がわかりませんでした。

ヘルプに感謝

4

1 に答える 1

0

@属性を取得するには、次を使用する必要があります。

DECLARE @X XML = '<mnt:job xmlns:mnt="http://namespaces.aada.be/4.0/maintenance"
                    xmlns:order="http://namespaces.aadasoftware.net/4.4/maintenance/order" 
                    mnt:version="1.0" mnt:type="Aada.Core.Orders.DownloadOrder, Aada.Core">
                        <mnt:targets>
                            <mnt:target mnt:id="bf321a20-8283-4760-a683-57892d8b9e12" mnt:status="Succeeded" 
                            mnt:duration="00:00:00" mnt:message="" mnt:attempt="1" />
                        </mnt:targets>
                    </mnt:job>';

WITH XMLNAMESPACES ('http://namespaces.aada.be/4.0/maintenance' AS mnt)
SELECT  @X.value('(/mnt:job/@mnt:type)[1]', 'nvarchar(max)');
于 2013-01-24T11:46:42.060 に答える