다음 XML이 있고 속성 이름과 모든 요소 값을 가져 오려면이 데이터를 SQL 테이블로 가져와야합니다.
declare @GetQuoteXML xml
set @GetQuoteXML = '<QuoteRequest>
<QuoteRisk>
<ChildControls parent = "MainPerson">
<OccupationID>347</OccupationID>
<OccupationDescription />
<OccupationOtherDescription>accountant</OccupationOtherDescription>
</ChildControls>
<ChildControls parent = "OtherPerson">
<OccupationID>200</OccupationID>
<OccupationDescription />
<OccupationOtherDescription>engineer</OccupationOtherDescription>
</ChildControls>
</QuoteRisk>
</QuoteRequest>'
내 SQL은
SELECT
AttributeName = ChildControls.value('(//ChildControls/@parent)[1]','varchar(50)'),
NodeName = ChildControls.value('local-name(.)', 'varchar(50)'),
NodeValue = ChildControls.value('(.)[1]', 'varchar(50)')
FROM @GetQuoteXML.nodes('//ChildControls/*') AS ChildControlTable(ChildControls)
그러나 결과는 항상 'Mainperson'속성 아래에있는 것처럼 보이며 AttributeName 열에 'OtherPerson'을 반환하지 않습니다.
AttributeName NodeName NodeValue
MainPerson OccupationID 347
MainPerson OccupationDescription
MainPerson OccupationOtherDescription accountant
MainPerson OccupationID 200
MainPerson OccupationDescription
MainPerson OccupationOtherDescription engineer
내가 원하는 결과는 다음과 같습니다.
AttributeName NodeName NodeValue
MainPerson OccupationID 347
MainPerson OccupationDescription
MainPerson OccupationOtherDescription accountant
OtherPerson OccupationID 200
OtherPerson OccupationDescription
OtherPerson OccupationOtherDescription engineer
나는 이것에 비교적 새롭고 이것을 알아낼 수없는 것 같습니다. 이것이 아마도 그렇게 간단하기 때문에 도와주세요!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다