Eu tenho um documento XML semelhante a este:
<Root>
<Sub>
<Record>
<Guid>aslkjflaksjflkasjfkljsd</Guid>
</Record>
<Record>
<Guid>opqiwuerl;kasdlfkjawop</Guid>
</Record>
</Sub>
</Root>
Estou substituindo um <Record>
nó inteiro com base em alguns critérios. Os <Record>
nós contêm um <Guid>
que posso usar para identificá-los (finja que são GUIDs válidos, por favor!).
Conhecendo o GUID, estou retornando o XML desse nó em uma variável para processamento posterior. Downstream, preciso ser capaz de excluir esse nó específico para poder colocar insert
a versão modificada do nó de volta no documento original.
Existe uma maneira de determinar o ordinal ou outra maneira de usar um método delete
/ replace
para remover um nó com base no valor de um elemento?
Se você tiver o valor em uma variável, poderá usar sql:variable() no predicado da exclusão.
Substituir um registro por um novo registro seria mais ou menos assim.
Primeiro adicione o novo registro após o existente e exclua a primeira ocorrência em que Guid é uma correspondência. Sem
[1]
no delete você vai deletar todas as ocorrências, não só a primeira.