SQL Server 2000 SP_XML_PREPAREDOCUMUTE- 노드의 InnerXML/InnerText를 얻으려면
-
20-09-2019 - |
문제
맨 아래에있는 데이터가 있습니다. SQL Server 2000 저장된 Proc를 사용하여 SP_XML_PREPAREDOCUMUTE를 사용 하여이 데이터를 처리합니다.
나는 아래에있는 것처럼 노드 partauxiliaryid 내에서 데이터를 변수에 대한 아래 (값이나 속성이 아닌 정확한 xml) 가져오고 싶습니다. sp_xml_preparedocument를 사용하여 저장 Proc에서 그렇게하는 가장 좋은 방법은 무엇입니까?
<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
다음을 두 줄로 얻을 것입니다
<Info name="quoteNumber">962445</Info>
<Info name="shipSourceType">INTERNAL</Info>\
제휴하지 않습니다 StackOverflow