SQL Server 2008에서 일부 데이터를 읽어야하는 XML 파일이 있습니다.
이 문제를 해결하기 위해 저를 안내하십시오.
내 XML 파일은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://tempuri.org/">
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="CI_CODE" type="xs:decimal" minOccurs="0" />
<xs:element name="CI_NAME" type="xs:string" minOccurs="0" />
<xs:element name="CI_PISH_CODE" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Table diffgr:id="Table1" msdata:rowOrder="0">
<CI_CODE>1</CI_CODE>
<CI_NAME>Kerman</CI_NAME>
<CI_PISH_CODE>34</CI_PISH_CODE>
</Table>
<Table diffgr:id="Table2" msdata:rowOrder="1">
<CI_CODE>2</CI_CODE>
<CI_NAME>Anar</CI_NAME>
<CI_PISH_CODE>34</CI_PISH_CODE>
</Table>
<Table diffgr:id="Table3" msdata:rowOrder="2">
<CI_CODE>3</CI_CODE>
<CI_NAME>Baft</CI_NAME>
<CI_PISH_CODE>34</CI_PISH_CODE>
</Table>
</NewDataSet>
</diffgr:diffgram>
</DataSet>
SQL Server 2008에서이 XML을 읽는 데 도움이 필요합니다.
나는 태그가 필요 <CI_CODE>
하고 <CI_NAME>
및 <CI_PISH_CODE>
데이터를.
나를 안내 해주세요
XML이라는 변수에 저장되어 있다고 가정하면 @Data XML
이 XQuery를 사용하여 데이터를 가져올 수 있습니다.
XPath 표현식은 노드 트리 아래로 "탐색"하여 XML 조각의 "가상"테이블 (각 <Table>
XML 요소 당 하나씩)을 제공합니다 . 해당 XML 요소에서 .value()
XQuery 표현식을 사용하여 개별 데이터 항목을 가져올 수 있습니다 .
각 요소에 대해 올바른 XML 네임 스페이스를 사용하는 데 특히주의해야합니다 .
;WITH XMLNAMESPACES('http://tempuri.org/' AS ns,
'urn:schemas-microsoft-com:xml-diffgram-v1' AS dg)
SELECT
CI_CODE = XC.value('(CI_CODE)[1]', 'int'),
CI_NAME = XC.value('(CI_NAME)[1]', 'varchar(50)'),
CI_PISH_CODE = XC.value('(CI_PISH_CODE)[1]', 'int')
FROM
@Data.nodes('/ns:DataSet/dg:diffgram/NewDataSet/Table') AS XT(XC)
이것은 내 PC에서 다음 출력을 생성합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다