2013-03-07 105 views
1

<test> <DBO.JOB> <JOB_NO>234234</JOB_NO> <CREW_NO>64850</CREW_NO> <BEGINDATE></BEGINDATE> <ENDDATE></ENDDATE> </DBO.JOB> <DBO.JOB> <JOB_NO>234</JOB_NO> <CREW_NO>234</CREW_NO> <BEGINDATE></BEGINDATE> <ENDDATE></ENDDATE> </DBO.JOB> <DBO.JOB> <JOB_NO>324</JOB_NO> `解析多个XML标签

我想知道如何使用只开放XML解析这些标签并更新到表DBO.JOB

回答

0

试试这个:

DECLARE @xml NVARCHAR(1000) = 
'<test> 
    <DBO.JOB> 
     <JOB_NO>234234</JOB_NO> 
     <CREW_NO>64850</CREW_NO> 
     <BEGINDATE></BEGINDATE> 
     <ENDDATE></ENDDATE>  
    </DBO.JOB> 
    <DBO.JOB> 
     <JOB_NO>234</JOB_NO> 
     <CREW_NO>234</CREW_NO> 
     <BEGINDATE></BEGINDATE> 
     <ENDDATE></ENDDATE> 
    </DBO.JOB> 
</test>' 

DECLARE @hdoc int 
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml 

INSERT INTO DBO.JOB(JOB_NO, CREW_NO, BEGINDATE, ENDDATE) 
SELECT * 
FROM OPENXML(@hdoc, '/test/DBO.JOB', 2) 
WITH (
     JOB_NO INT, 
     CREW_NO INT, 
     BEGINDATE DATETIME, 
     ENDDATE DATETIME 
) 

EXEC sp_xml_removedocument @hdoc