Benutzer mit den meisten Antworten
XML

Frage
-
Guten Abend,
ich versuche gerade XML etwas zu verstehen.
Hierzu habe ich mir ein Beispiel von dieser Seite erstellt:
Im MSSQL bekomme ich aber keine Datenzeile:
DECLARE @xml XML = N' <persons> <person> <id> 1 </id> <personsname> AjsonDev </personsname> <country> United Kingdom </country> <languages> <language> C# </language> <language> JavaScript </language> <language> Python </language> <language> Objective-C </language> <language> Pascal </language> <language> F# </language> <language> R </language> </languages> </person> <person> <id> 2 </id> <personsname> Mahabir </personsname> <country> India </country> <languages> <language> C# </language> <language> JavaScript </language> <language> C++ </language> <langauge> VB <language> SQL </language> </langauge></languages> </person> <person> <id> 3 </id> <personsname> Joanna </personsname> <country> Netherlands </country> <languages> <language> Dutch </language> <languages> </languages></languages></person> </persons> ;' SELECT xData.value('../ID [1]','int') ID, xData.value('../PersonsName [1]','VARCHAR(50)') PersonsName, xData.value('../Country [1]','varchar(100)') Country, xData.value('(.) [1]','varchar(1000)') FROM @xml.nodes('./Persons/Person/Languages') as x(xData)
Kann mir vielleicht jemand sagen, was hier verkehrt ist?
Vielen Dank schon einmal.
Antworten
-
Hi Jörg,
XML ist casesensitive. D.h, Groß-/Kleinschreibung ist für die Knotenbezeichner genau einzuhalten. Für Deine XML-Daten bedeutet das:SELECT xData.value('../id [1]','int') ID, xData.value('../personsName [1]','VARCHAR(50)') PersonsName, xData.value('../country [1]','varchar(100)') Country, xData.value('(.) [1]','varchar(1000)') FROM @xml.nodes('./persons/person/languages') as x(xData)
--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Olaf HelperMVP Freitag, 11. Januar 2019 06:42
- Als Antwort markiert Joerg_x Freitag, 11. Januar 2019 18:09
Alle Antworten
-
Hi Jörg,
XML ist casesensitive. D.h, Groß-/Kleinschreibung ist für die Knotenbezeichner genau einzuhalten. Für Deine XML-Daten bedeutet das:SELECT xData.value('../id [1]','int') ID, xData.value('../personsName [1]','VARCHAR(50)') PersonsName, xData.value('../country [1]','varchar(100)') Country, xData.value('(.) [1]','varchar(1000)') FROM @xml.nodes('./persons/person/languages') as x(xData)
--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Olaf HelperMVP Freitag, 11. Januar 2019 06:42
- Als Antwort markiert Joerg_x Freitag, 11. Januar 2019 18:09
-
N'
<persons>
<person>
<id> 1 </id>
<personsname> AjsonDev </personsname>Hi Jörg,
XML ist casesensitive. D.h, Groß-/Kleinschreibung ist für die Knotenbezeichner genau einzuhalten. Für Deine XML-Daten bedeutet das:SELECT xData.value('../id [1]','int') ID, xData.value('../personsName [1]','VARCHAR(50)') PersonsName,
Genau Peter, und gleich ein gutes Beispiel mitgeliefert ;-)Olaf Helper
[ Blog] [ Xing] [ MVP]