onze sponsors
XML hulp gevraagd
Ik wil onderstaand extract uit een XML bestand omzetten naar SQL2005 maar krijg geen resultaat terug ,
Ik vermoed dat voor het element een andere syntax noodzakelijk is ?
ik gebruik nu de expressie:
DECLARE
SELECT
FROM
tab
--XML extract
control-ES
6.5
BBD87ACAC2AC4A95A045A7A7FDB704C2
C50C40BB13A5468D92E2FABC3FE88D71
Inlezen bestanden
7/9/2007
1.00
Jan Jansen
Update Pending
0
7/12/2007, 2:24:00 PM
Eigen Haard
--etc
Hoi Ruud, Als je alleen maar enkelvoudige velden wilt opvragen dan is het niet nodig om de xml.nodes functie te gebruiken :Select @xml.value('DiagInfoΏ]/GUIDΏ]', 'varchar(50)') GUID, @xml.value('DiagInfoΏ]/ParentGUIDΏ]', 'varchar(50)') ParentGUID, @xml.value('DiagInfoΏ]/TitleΏ]', 'varchar(50)') TitleZelfs geen FROM, where is the fun in that :-)Groeten,Andrép.s. : Wellicht een overbodig opmerking maar ".value" is case sensitive ".Value" werkt niet.En XML nodes zijn ook case sensitive, "ParentGUID" moet dus in de xml ook "ParentGUID" heten en niet "ParentGuid".EDIT : Er lijkt een probleempje met het weergeven van "[blokhaak openen]één[blokhaak sluiten", dit zie je in het forum als "[Omega][blokhaak sluiten]"
Ruud,
Je gemailde xml voorbeeld maakt het wat duidelijker.Er wordt namelijk gebruik gemaakt van namespaces ('CONTROL:GUID' ipv 'GUID')Die namespaces moet je eerst declareren.Er zijn een aantal mogelijkheden, ik plaats hieronder een drietal voorbeelden die allemaal hetzelfde doen waarbij de een iets beter te lezen is dan de ander en dus 'onderhoudsvriendelijker'.(De laatste is mijn favoriet )
Select @xml.value('declare namespace CONTROL="CONTROL"; XMIΏ]/XMI.contentΏ]/CONTROL:DiagramΏ]/CONTROL:DiagInfoΏ]/CONTROL:GUIDΏ]', 'varchar(50)') GUID,
@xml
Select
;
Hoi Ruud,
Naar aanleiding van je mail vul ik e.e.a. nog even aan met een voorbeeld voor het ophalen van een resultset in plaats van een paar "losse" records.