Autor | Zpráva | ||
---|---|---|---|
Vitality77 Profil * |
#1 · Zasláno: 2. 6. 2013, 00:13:22
Dobrý den,
Snažím se o vložení obrázku do xml souboru.. poradte prosím. Mám xml soubour: <!-- Edited by XMLSpy® --> <catalog> <prsteny> <panske> <prsten> <id>9015-05149</id> <foto src="9015.jpg"></foto> <popisek1>PRSTEN ZLATÝ S KAMENEM - 13.50 g.</popisek1> <popisek2>PRSTEN STŘIBRO S KAMENEM - 10.30 g.</popisek2> <cena1>927 kč/ks</cena1> <cena2>927 kč/ks</cena2> </prsten> <prsten> <id>0206-019800</id> <foto src="0206.jpg"></foto> <popisek1>PRSTEN CELOZLATY - 8.30 g.</popisek1> <popisek2>PRSTEN STŘIBRO - 7.50 g.</popisek2> <cena1>3735 kč/ks</cena1> <cena2>600 kč/ks</cena2> </prsten> <prsten> <id>0109-009600</id> <foto src="0109.jpg"></foto> <popisek1>PRSTEN CELOZLATY - 5.50 g.</popisek1> <popisek2>PRSTEN STŘIBRO - 5.00 g.</popisek2> <cena1>2750 kč/ks</cena1> <cena2>400 kč/ks</cena2> </prsten> </panske> </prsteny> </catalog> <xsl:for-each select="catalog/prsteny/panske/prsten"> <tr> <td><xsl:value-of select="id"/></td> <td><img><xsl:attribute name="src">/pages/<xsl:value-of select="foto"/></xsl:attribute></img></td> <td><xsl:value-of select="popisek1"/><br/><xsl:value-of select="popisek2"/></td> <td><xsl:value-of select="cena1"/><br/><xsl:value-of select="cena2"/></td> </tr> </xsl:for-each> <![CDATA[<img width="50" height="50" src="]]><xsl:value-of select="foto/@src"/><![CDATA["/>]]> ale zobrazí se jako text img src a tak dále.. zkoušel jsem i takto : <img><xsl:attribute name="src">/pages/<xsl:value-of select="foto"/></xsl:attribute></img> ale tehle syntaxi nerozumím a nvm jestli to mám dobře.. podařilo se mi zprovoznit pouze timhle způsobem : <img width="50" height="50" src="{/catalog/prsteny/panske/prsten/foto/@src}"/> ale u všech tabulek se zobrazí jeden a tentýž obrázek protože to bere asi ten první z direktorii. Prosím o radu. Díky moc
|
||
juriad Profil |
#2 · Zasláno: 2. 6. 2013, 13:07:03
<xsl:attribute name="src"> <xsl:text>/pages/</xsl:text> <xsl:value-of select="foto/@src" /> </xsl:attribute> |
||
Vitality77 Profil * |
#3 · Zasláno: 2. 6. 2013, 13:53:05 · Upravil/a: Vitality77
juriad:
Já to pořád nechápu.. mám to vložit do xsl souboru? vložím a nic se neděje.. mohl byste mi vysvětlit co vlastně dělají dané řádky? v foto/@src je uložen obrazek= blabla.jpg a v xsl souboru potřebuju napsat kod tak aby při volání v html se zobrazil ten daný obrazek.. ted to mám takto: <img width="150" height="150" align="center" src="{/catalog/prsteny/panske/prsten/foto/@src}"/> ale zobrazuje pořád stejný obrazek protože cesta je stejná, při zadání cesty jenom na /foto/@src se nic neděje.. co s tím?<xsl:for-each select="catalog/prsteny/panske/prsten"> <img width="150" height="150" align="center" src="{/catalog/prsteny/panske/prsten/foto/@src}"/> </xsl:for-each> potřebuju asi něco takového <img width="150" height="150" align="center" src="{<xsl:value-of select="foto/@src"/>}"/>
|
||
juriad Profil |
#4 · Zasláno: 2. 6. 2013, 15:04:24
Mě to funguje, používám tento xsl template:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:for-each select="catalog/prsteny/panske/prsten"> <tr> <td> <xsl:value-of select="id" /> </td> <td> <img> <xsl:attribute name="src"> <xsl:text>/pages/</xsl:text> <xsl:value-of select="foto/@src" /> </xsl:attribute> </img> </td> <td> <xsl:value-of select="popisek1" /> <br /> <xsl:value-of select="popisek2" /> </td> <td> <xsl:value-of select="cena1" /> <br /> <xsl:value-of select="cena2" /> </td> </tr> </xsl:for-each> </xsl:template> </xsl:stylesheet> Ty řádky dělají přesně to co mají. Přidají atribut src, jehož hodnota bude text "/pages/" následovaný hodnotou atributu src elementu foto. Před foto nesmí být lomítko. |
||
Vitality77 Profil * |
#5 · Zasláno: 2. 6. 2013, 17:25:24
já jsem ale ... nechápavý.. :) omlouvám se.. nedával jsem tam tag <img></img>.. jsem v xml nováček a tak se znažím ho poznat, děkují moc už je to vyřešený :)
|
||
Vitality77 Profil * |
#6 · Zasláno: 3. 6. 2013, 00:23:03
Můžu se ještě jednou obrátit ? :) určitě to bude jednoduchým řešením ale na internetu jsem se nedohledal.. jde o to že bych chtěl volat pomoci javascriptu <prsten/> kde je id třeba 9015-05149.. aby to vypsalo všechny podbody toho prstenu.. dokopal jsem se k tomuhle:
<<!DOCTYPE html> <html> <body> <script> function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp=new XMLHttpRequest(); } else { xhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",dname,false); xhttp.send(""); return xhttp.responseXML; } function barabara() { xml=loadXMLDoc("pages/catalog.xml"); path="/catalog/prsteny/panske/prsten/cena1" // code for IE if (window.ActiveXObject) { var nodes=xml.selectNodes(path); for (i=0;i<nodes.length;i++) { // document.write(nodes[i].getElementsByTagName("popisek1")[0].childNodes[0].nodeValue); document.write(nodes[i].childNodes[0].nodeValue); document.write("<br>"); } } // code for Mozilla, Firefox, Opera, etc. else if (document.implementation && document.implementation.createDocument) { var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE,null); var result=nodes.iterateNext(); while(result) { document.write(result.childNodes[0].nodeValue); document.write("<br>"); result=nodes.iterateNext(); } } } </script> <button type="button" onclick="barabara()">Click</button> </body> </html> |
||
juriad Profil |
#7 · Zasláno: 3. 6. 2013, 08:27:23
xpath dotaz bude:
/catalog/prsteny/panske/prsten[id=9015-05149]
výsledkem evaluate/selectNodes bude jeden Node (ke kterému se nejspíš budeš muset proiterovat) A následně už budeš používat čistě DOMové atributy https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIDOMNode#Attributes pro výpis celého stromečku. |
||
Časová prodleva: 11 let
|
0