Estou trabalhando no dump do banco de dados desta seção exata de troca de pilha. Enquanto estou trabalhando nisso, encontrei um problema que atualmente não consigo resolver.
No arquivo XML Posts.xml o conteúdo fica assim
É claro que existem várias linhas, mas é assim que se parece. Já existe um arquivo Tags.xml fornecido no dump, o que torna ainda mais óbvio que o atributo "Tags" nessa imagem é de fato sua tabela separada (muitos para muitos).
Então, agora estou tentando descobrir uma maneira de extrair as tags. Aqui está o que eu tentei fazer:
CREATE TABLE #TestingIdea (
Id int PRIMARY KEY IDENTITY (1,1),
PostId int NULL,
Tag nvarchar (MAX) NULL
)
GO
↑ A tabela que criei para testar meu código. Já preenchi com as Tags e PostIds
SELECT T1.PostId,
S.SplitTag
FROM (
SELECT T.PostId,
cast('<X>'+ REPLACE(T.Tag,'>','</X><X>') + '</X>' as XML) AS NewTag
FROM #TestingIdea AS T
) AS T1
CROSS APPLY (
SELECT tData.value('.','nvarchar(30)') SplitTag
FROM T1.NewTag.nodes('X') AS T(tData)
) AS S
GO
Ainda este código retorna este erro
XML parsing: line 1, character 37, illegal qualified name character
Depois de pesquisar esse erro (incluindo aqui), o que quer que as pessoas tivessem (como marcas " extras ou conjuntos de CHAR diferentes) eu não tinha. Então estou meio travado. Talvez eu tenha perdido algo extremamente óbvio nas respostas anteriores, encontrei T_T Em qualquer caso Agradeço qualquer ajuda e conselhos sobre como resolver isso. É a última tabela que ainda não normalizei.
Pequenos dados de amostra do arquivo XML https://pastebin.com/AW0Z8Be2 Para qualquer pessoa interessada no programa eu uso para visualizar arquivos XML (assim é muito mais fácil de ler como na imagem acima). Chama-se FOXE XML Reader (Free XML Editor - First Object)
Algo assim satisfaz o conjunto de resultados?
Tabela e dados
Consulta
Resultado