Tabelle aus XHTML importieren

ukulele

Datenbank-Guru
Beiträge
5.140
Ich befasse mich grade mit XHTML und XML. Ich möchte aus einer XHTML Datei, die ich nicht selbst erstelle und die genau eine Tabelle beinhaltet die Daten in SQL nutzbar machen.

Ich kann den gesamten Inhalt der HTML Datei in eine XML Spalte meiner Tabelle legen, das klappt so weit. Die original Datei ist groß und komplex aber ich scheitere schon an ganz simplen Dingen und verstehe es offensichtlich nicht richtig :(

Hier mein derzeitiger Versuch:
Code:
DECLARE    @data XML

SET        @data = '
<table>
    <tr>
        <th>Berlin</th>
        <th>Hamburg</th>
        <th>München</th>
    </tr>
    <tr>
        <td>Miljöh</td>
        <td>Kiez</td>
        <td>Bierdampf</td>
    </tr>
    <tr>
        <td>Buletten</td>
        <td>Frikadellen</td>
        <td>Fleischpflanzerl</td>
    </tr>
</table>'

SELECT    x.y.value('th[1]', 'VARCHAR(2000)') AS [1],
        x.y.value('td[1]', 'VARCHAR(2000)') AS [2],
        x.y.value('td[2]', 'VARCHAR(2000)') AS [3]
FROM    @data .nodes('//table/tr') AS x(y)
Das ergibt:
Berlin NULL NULL
NULL Miljöh Kiez
NULL Buletten Frikadellen
Quelle ist unter anderem hier:
How to Import Data from HTML pages
 
Werbung:
Also nachdem ich gestern dann mal das HTML des originalen Dokuments zerlegt habe verstehe ich jetzt auch besser wie es läuft und bekomme vor allem meine Daten in die richtigen Spalten.

Allerdings entfernt er mir alles, was irgendwie an weiteren HTML-Tags (<br>, <div>, <a href>) in der Tabelle steht, die Infos brauche ich noch. Gibt es da einen Weg das zu unterbinden?
 
Hallo ukulele (frohes neues und so ...)

ich finde das Thema XML für den SQL-Server äußerst interessant und habe mich selbst auch schon sehr intensiv damit beschäftigt (auch wenn das jetzt scon wieder was länger her ist).

Wahrschenlich hast du bereits diverse Seiten im Internet gefunden, die dir weitergeholfen haben.

Für alle anderen, die das Thema auch interessiert - mich haben folgende Seiten weiter gebracht:

xml-Datentypmethoden
XQuery für den xml-Datentyp

Viele Grüße,
Tommi
 
Werbung:
Ja ich arbeite jetzt mit .value() und .query() und das klappt sehr gut nachdem ich die eigentliche Daten-Tabelle aus der Webseite in eine eigene XML Spalte übertragen habe.
 
Zurück
Oben