XPATH 요소에 관한 XML 경로에 대한 MS TSQL
-
08-07-2019 - |
문제
다음 TSQL 문이 있습니다.
select
tblName "TblName",
structure "TblName/STRUCTURE",
sqlRetrieve "TblName/SQLRETRIEVE",
Identifier "TblName/IDENTIFIER",
'2' "TblName/OBJECTTYPE"
from
configTable
for xml path ('')
출력 :
<TblName>PD_CODE_PRODUCTS
<STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE>
<SQLRETRIEVE>BATCHSP</SQLRETRIEVE>
<IDENTIFIER>DATA_OWNER</IDENTIFIER>
<OBJECTTYPE>2</OBJECTTYPE>
</TblName>
<TblName>PD_two
<STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE>
<SQLRETRIEVE>BATCHSP</SQLRETRIEVE>
<IDENTIFIER>DATA_OWNER</IDENTIFIER>
<OBJECTTYPE>2</OBJECTTYPE>
</TblName>
그러나이 출력 (요소 이름 :
<PD_CODE_PRODUCTS>
<STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE>
<SQLRETRIEVE>BATCHSP</SQLRETRIEVE>
<IDENTIFIER>DATA_OWNER</IDENTIFIER>
<OBJECTTYPE>2</OBJECTTYPE>
</PD_CODE_PRODUCTS>
<PD_two>
<STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE>
<SQLRETRIEVE>BATCHSP</SQLRETRIEVE>
<IDENTIFIER>DATA_OWNER</IDENTIFIER>
<OBJECTTYPE>2</OBJECTTYPE>
</PD_two>
T-SQL로 이것을 달성하는 방법을 아는 사람이 있습니까?
감사
다니엘
해결책
불행히도 T-SQL로 이것을 달성 할 수 있다고 생각하지 않습니다.
당신이 얻을 수있는 가장 가까운 것은 이것입니다.
<TABLE Name="PD_CODE_PRODUCTS">
<TblName>
<STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE>
<SQLRETRIEVE>BATCHSP</SQLRETRIEVE>
<IDENTIFIER>DATA_OWNER</IDENTIFIER>
<OBJECTTYPE>2</OBJECTTYPE>
</TblName>
</TABLE>
<TABLE Name="PD two">
<TblName>
<STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE>
<SQLRETRIEVE>BATCHSP</SQLRETRIEVE>
<IDENTIFIER>DATA_OWNER</IDENTIFIER>
<OBJECTTYPE>2</OBJECTTYPE>
</TblName>
</TABLE>
쿼리를 조정하는 경우 :
select
tblName '@Name',
structure "TblName/STRUCTURE",
sqlRetrieve "TblName/SQLRETRIEVE",
Identifier "TblName/IDENTIFIER",
'2' "TblName/OBJECTTYPE"
from
configTable
for xml path ('TABLE')
죄송합니다. :-)
마크
다른 팁
XML 구조를 제어 할 수 있다면, 당신이하려는 일을하지 말라고 간청합니다. XML 요소 이름이 데이터를 기반으로 변경되는 XML 문서를 사용하고 작업하기가 끔찍합니다. XPath 문장은 어렵고 XSLT는 거의 불가능합니다.
marc_s가 제안한 것을하십시오. 나중에 그에게 감사 할 것입니다.
구조를 통제 할 수 없다면 내 동정심이 있습니다.
내가 당신을 올바르게 이해한다면 - 당신은 많은 주요 뿌리를 갖지 않고 하나의 루트 요소를 원합니다.
사용:
select tblName '@Name', structure "TblName/STRUCTURE", sqlRetrieve "TblName/SQLRETRIEVE", Identifier "TblName/IDENTIFIER", '2' "TblName/OBJECTTYPE"from configTable for xml path (''), root('TABLE'), type
제휴하지 않습니다 StackOverflow