none
XML und Umlaute RRS feed

  • Frage

  • declare @sql xml

    declare @handle int

    set @sql = '<Buchstaben><A>a</A><B>b</B><C>c</C><D>d</D></Buchstaben>'

    EXEC sp_xml_preparedocument @handle OUTPUT, @sql

    select * FROM OPENXML (@handle, '/', 2)

     

     

    -- funktioniert

     

     

    set @sql = '<Umlaute><Ae>&Auml;</Ae></Umlaute>'

    EXEC sp_xml_preparedocument @handle OUTPUT, @sql

    select * FROM OPENXML (@handle, '/', 2)

     

    -- Meldung 9448, Ebene 16, Status 1, Zeile 8

    -- XML-Analyse: Zeile 1, Zeichen 19, Gltigkeitsberprfung: nicht deklarierte Entitt. OPENXML (@handle, '/', 2)

     

     

    Was muss ich machen damit auch die HTML-Umlaute funktionieren?

    Vielen Dank im voraus

     


    Donnerstag, 13. Oktober 2011 12:19

Antworten

  • Hallo Praktikant,

    was Du als Text Element reinschreibst, ist XML egal, es interpretiert es nicht. Aber Du musst Dich an die XML Kodierungskonventionen halten und die besagen, das reservierte Zeichen wie & <> etc entsprechend kodiert werden müssen, vergleichbar zu HTML.

    Das & musst Du durch &amp; ersetzen:

    declare @sql xml
    declare @handle int
     
    set @sql = '<Umlaute><Ae>&amp;Auml;</Ae></Umlaute>'
    EXEC sp_xml_preparedocument @handle OUTPUT, @sql
    select * FROM OPENXML (@handle, '/', 2)
    


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Donnerstag, 13. Oktober 2011 15:02