Entwickler-Ecke

IO, XML und Registry - Bildpfad korrekt in xml und xsl angeben


DeTomaso33 - Fr 29.01.16 15:55
Titel: Bildpfad korrekt in xml und xsl angeben
Hallo Forums-Mitglieder,

ich habe gerade auf http://edelbyte.de/tutorials/xml/xslt.pdf ein XML-Tutorial in Auszügen gelesen. Seite 39 und 40 interessieren mich besonders.

1)XML
Ein Bild das eingebunden werden soll, wird im xml mit <bild quelle="..img/tim.jpg"/> eingebunden. Jetzt ist die Frage :?: :"Was verbirgt sich hinter den Pünktchen? Wie startet der Pfad?" Ich habe schon diverse Homepages und Foren nach einem Anhaltspunkt danach durchsucht! Ergebnislos !
Bei meiner Programmierung in C# startet ein Pfad so z.B.: pfad="@C:/EigeneDateien/Bilder/tim.jpg" . Folgt hier auf quelle="C:/EigeneDateien/Bilder/tim.jpg"/> direkt? Also so ungefähr?

2)XSL
Seite 40: <img src="{bild/@quelle}" border="0" /> Hier wird Bild doch durch tim.jpg ersetzt oder? Ich habe daraus folgendes gemacht:
<img src=" {tim.jpg/@C:\Users\T\Pictures\Camera Roll\tim.jpg}" border="0" />
Das liefert eine kaputte html Darstellung! Die Tabelle(hier nicht aufgeführt) ist nicht mehr als solche gegeben, sondern nur noch als aneinandergereihter Text!

Ich wäre Ihnen dankbar für eine hilfreiche Antwort!
Schönes Wochenende! :wink:

mfg
DeTomaso33


Th69 - Fr 29.01.16 17:54

Hallo,

zu 1:
Weißt du nicht, was relative Pfade sind? ".." bezeichnet das übergeordnete Verzeichnis (parent directory).

zu 2:
Auf Seite 41 wird das doch erklärt: <bild> bezeichnet den Namen des Elements im XML-Code (s. Seite 38).


DeTomaso33 - Fr 29.01.16 23:50

Hi Th69,

klar relative Pfade benötigen nur die letzten Teile des Pfades ohne den Anfang. Ich wußte nicht, dass das hier gemeint war. Ich war Ausdrucksblind für den Moment!

Okay, damit weiß ich dann,dass <bild> stehen bleiben muss! Danke Dir! Schon bin ich ein kleines Stück weiter! Mal sehen, ob ich's jetzt hinbekomme.

mfg
DeTomaso33 :)


DeTomaso33 - So 31.01.16 17:41

Hi,

ich habe bei {bild/@quelle} zwei Optionen ausprobiert. Einmal mit Anführungszeichen also @"C:/IMG/Tim.jpg" und
einmal ohne -> @C:/IMG/Tim.jpg innerhalb der geschweiften Klammern natürlich. Der Pfad ist bei mir auch ein bisschen länger als hier im Bsp.!
Das Ergebnis ist beide mal die reine Textdarstellung (als Block) meines xml. Die Tabelle ist kaputt. :(

Ich verstehe das nicht. Meine Einträge habe doch an der Wohlgeformtheit nichts geändert. Wenn der Pfad nicht funktioniert, kann die Tabelle doch weiterhin dargestellt werden?!? :?:

Weiß jemand Rat?

mfg


Th69 - So 31.01.16 18:06

Wenn du einen festen Pfad willst, dann trag ihn direkt dort ein:

HTML-Dokument
1:
<img src="C:\Users\T\Pictures\Camera Roll\tim.jpg" border="0" />                    

Dies ist aber bei HTML nicht zu empfehlen, sondern möglichst immer relative Pfade benutzen (am besten dazu dann die Bilder in einen eigenen Unterordner kopieren).


DeTomaso33 - Mo 01.02.16 09:21

Hallo,

Ich habe den letzten Ratschlag gerade auf das .xsl angewendet und ich habe noch einmal was ausprobiert. In der xml Datei habe ich bei Bild ein Closing-Tag </bild> hinzugefügt. Jetzt funktioniert es!!! :D

<bild quelle="C:\Users\T\Pictures\Camera Roll\Tim.jpg"> </bild>


mfg DeTomaso33

Next step: Details klären bzgl. Größe und Position


tomte - Mo 01.02.16 09:56

user profile iconDeTomaso33 hat folgendes geschrieben Zum zitierten Posting springen:
das Ergebnis ist immer noch nicht incl. Bild gegeben! Ich habe den letzten Ratschlag gerade angewendet. Die zerstörte Tabelle sieht so aus.(s.Anhang)

Hi,
an deinem Screenshot kann man nicht erkennen, wo der Fehler ist. Bitte poste den Quelltext der Seite, da man nur am Seitenquelltext erkennen kann was da falsch läuft.


DeTomaso33 - Mo 01.02.16 10:15

Hi tomte,

da hat es wohl gerade eine Überschneidung der Messages gegeben.Kann ich gerne machen. Damit dürften dann letzte Ungereimtheiten geklärt sein. Ich habe allerdings das Ganze auf mein w3school Bsp. angewendet. Hier jetzt die kompletten richtigen Quellcodes. Das Tim.jpg ist hier goldschallplatte.jpg!

XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdliste.xsl"?>
<catalog>
   <bild quelle="C:\Users\T\Pictures\Camera Roll\goldschallplatte.jpg"> </bild>
         <cd>
     <title>Sweet wet dreams</title>
    <artist>Mando Diao</artist>
     <country>USA</country>
    <company>Columbia</company>
     <price>1.19</price>
    <year>2015</year>
  </cd>
  
  <cd>
    <title>When a man loves a woman</title>
     <artist>Percy Sledge</artist>
    <country>USA</country>
    <company>Atlantic</company>
    <price>8.70</price>
    <year>1987</year>
  </cd>
  
  <cd>
    <title>Bridge of Spies</title>
    <artist>T`Pau</artist>
    <country>UK</country>
    <company>Siren</company>
    <price>7.90</price>
    <year>1987</year>
  </cd>
  <cd>
    <title>Private Dancer</title>
    <artist>Tina Turner</artist>
    <country>UK</country>
    <company>Capitol</company>
    <price>8.90</price>
    <year>1983</year>
  </cd>
  
  <cd>
    <title>Pavarotti Gala Concert</title>
    <artist>Luciano Pavarotti</artist>
    <country>UK</country>
    <company>DECCA</company>
    <price>9.90</price>
    <year>1991</year>
  </cd>
</catalog>


und hier das .xsl !


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:template match="/">
              <html>
              <body>
                <h2>My CD Collection</h2>
                <table border="1">
                  <tr bgcolor="#9acd32">
                    <th>Title</th>
                    <th>Artist</th>
                    <th>Year</th>
                  </tr>
                  <xsl:for-each select="catalog/cd">
                  <tr>
                    <td><xsl:value-of select="title" /></td>
                    <td><xsl:value-of select="artist" /></td>
                    <td><xsl:value-of select="year" /></td>
                  </tr>
                  </xsl:for-each>
                </table>
                <img src="C:\Users\T\Pictures\Camera Roll\goldschallplatte.jpg" border="0" />
              </body>
              </html>
            </xsl:template>
            </xsl:stylesheet>

Damit hat sich diese Frage erledigt und ich öffne ein Thema zu den Details bei der Darstellung des Bildes! :)

mfg

Moderiert von user profile iconTh69: XML-Tags hinzugefügt