SQL Server 2000のsp_xml_preparedocument - ノードのInnerXmlプロパティ/ InnerTextプロパティを取得するには
-
20-09-2019 - |
質問
私は、下部にあるようないくつかのデータを持っています。私はsp_xml_preparedocumentを使用してこのデータを処理するために、SQL Server 2000のストアドプロシージャを使用します。
それは以下のように(それは、値又は属性はないので、正確なXML)をI変数にノードPartAuxiliaryID内のデータを取得したいです。何が
sp_xml_preparedocumentを使用してストアドプロシージャにそれを行うための最善の方法となります <Info name="quoteNumber">962445</Info>
<Info name="shipSourceType">INTERNAL</Info>
<時間>
<Data>
<Item>
<ItemID>
<PartID>1234</PartID>
<PartAuxiliaryID>
<Info name="quoteNumber">962445</Info>
<Info name="shipSourceType">INTERNAL</Info>
</PartAuxiliaryID>
</ItemID>
</Item></Data>
正しい解決策はありません
他のヒント
私が見つけた答え
オプション1
DECLARE @xmlData varchar(3000)
SET @xmlData = '<Data>
<Item>
<ItemID>
<PartID>1234</PartID>
<PartAuxiliaryID>
<Info name="quoteNumber">962445</Info>
<Info name="shipSourceType">INTERNAL</Info>
</PartAuxiliaryID>
</ItemID>
</Item></Data>'
DECLARE @idoc int, @intRet int
DECLARE @URL VARCHAR(1000)
EXEC @intRet= sp_xml_preparedocument @idoc OUTPUT, @xmlData
SELECT *
FROM OPENXML (@idoc, '/Data/Item/ItemID/PartAuxiliaryID')
WITH (PartAuxiliaryID varchar(2000) '@mp:xmltext')
EXEC sp_xml_removedocument @idoc
-------------------------------------------------------------------------------
--will get the following
<PartAuxiliaryID><Info name="quoteNumber">962445</Info><Info name="shipSourceType">INTERNAL</Info></PartAuxiliaryID>
オプション2
DECLARE @xmlData varchar(3000)
SET @xmlData = '<Data>
<Item>
<ItemID>
<PartID>1234</PartID>
<PartAuxiliaryID>
<Info name="quoteNumber">962445</Info>
<Info name="shipSourceType">INTERNAL</Info>
</PartAuxiliaryID>
</ItemID>
</Item></Data>'
DECLARE @idoc int, @intRet int
DECLARE @URL VARCHAR(1000)
EXEC @intRet= sp_xml_preparedocument @idoc OUTPUT, @xmlData
SELECT *
FROM OPENXML (@idoc, '/Data/Item/ItemID/PartAuxiliaryID/Info')
WITH (PartAuxiliaryID varchar(2000) '@mp:xmltext')
EXEC sp_xml_removedocument @idoc
<時間>
2行として次のようになります。
<Info name="quoteNumber">962445</Info>
<Info name="shipSourceType">INTERNAL</Info>\
所属していません StackOverflow