У меня есть столбец XML в таблице SQL сервера. Я хочу удалить определенные элементы и извлечь остальную информацию из этого столбца XML.
CREATE TABLE #TempTable (xmlDoc xml)
INSERT INTO #TempTable (xmlDoc)
SELECT TOP 1 ai.[XMLDocument].value('(/RequestInfo/TransDocument)[1]','varchar(max)') AS xmlDoc FROM [dbo].[FormDetails] WHERE [FormID] = xyz
Я хочу удалить все эти элементы, если какой-либо уровень дочерних элементов (или дочерних элементов) не имеет определенного значения , В приведенном ниже примере я хочу удалить все элементы <FormDetail>
, где USStateCd
НЕ РАВНО для 'NJ'
XML:
<Form>
<FormDetail>
<EmployeeInfoGrp>
<OtherCompletePersonName>
<PersonFirstNm>LALALALALI</PersonFirstNm>
<PersonMiddleNm>S</PersonMiddleNm>
<PersonLastNm>LILILILA</PersonLastNm>
</OtherCompletePersonName>
<MailingAddressGrp>
<USAddressGrp>
<AddressLine1Txt>108 ABCD AVE</AddressLine1Txt>
<CityNm>SPRINGFIELD</CityNm>
***<USStateCd>TN</USStateCd>***
<USZIPCd>37100</USZIPCd>
</USAddressGrp>
</MailingAddressGrp>
</EmployeeInfoGrp>
</FormDetail>
<FormDetail>
<EmployeeInfoGrp>
<OtherCompletePersonName>
<PersonFirstNm>CHACHACHACHA</PersonFirstNm>
<PersonMiddleNm>D</PersonMiddleNm>
<PersonLastNm>CHICHICHI</PersonLastNm>
</OtherCompletePersonName>
<MailingAddressGrp>
<USAddressGrp>
<AddressLine1Txt> EFGH AVE</AddressLine1Txt>
<CityNm>bLah</CityNm>
***<USStateCd>NJ</USStateCd>***
<USZIPCd>00111</USZIPCd>
</USAddressGrp>
</MailingAddressGrp>
</EmployeeInfoGrp>
</FormDetail>
</Form>