Dodaję obrazek, i działa, wygenerowoany zostaje obrazek w <img src="5.jpg />: ($image-dir właściwie niepotrzebne)
xml:
<?xml version="1.0" encoding="utf-8"?> <wpisy> <gosc> <nazwa>5</nazwa> </gosc> </wpisy>
xsl:
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="image-dir"></xsl:variable> <xsl:template match="wpisy/gosc"> <img src="{$image-dir}{nazwa}.jpg" /> </xsl:template> </xsl:stylesheet>
Dodaje tekst, i działa
xml
<wpisy> <gosc> <tytul>7</tytul> <opis>7</opis> <technologia>7</technologia> </gosc> </wpisy>
xls
<xsl:template match="wpisy/gosc"> <xsl:for-each select="/"> <xsl:value-of select="tytul"/> <xsl:value-of select="opis"/> <xsl:value-of select="technologia"/> </xsl:for-each> </xsl:template>
No to teraz chce dodać i tekst i obrazek za jednym zamachem. I gubię się całkowicie:
xml
<wpisy> <gosc> <nazwa>7</nazwa> <tytul>7</tytul> <opis>7</opis> <technologia>7</technologia> </gosc> </wpisy>
xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <?xml-stylesheet type="text/xsl" href="works.xsl"?> <!--<xsl:variable name="image-dir"></xsl:variable>--> <xsl:template match="wpisy/gosc2"> <table> <xsl:apply-templates select="A"/> <xsl:apply-templates select="B"/> </table> </xsl:template> <xsl:template match="A"> <img src="{nazwa}.jpg" /> </xsl:template> <xsl:template match="B"> <xsl:for-each select="/"> <tr> <td> <xsl:value-of select="tytul"/> </td> </tr> <tr> <xsl:value-of select="opis"/> </tr> <tr> <td> <xsl:value-of select="technologia"/> </td> </tr> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Jedyne, co się dzieje, to przesyłane są same parametry w postaci tekstu, obrazka nie zamienia na postac jpg. Dziwne rzeczy się poza tym dzieją... pomimo, że wszędzie deklaruję <gosc> nic nie jest przesyłane, jeśli nie wpisze wpisy/gosc2
i zapewne tu tkwi problem. Może jeszcze w zagnieższeniu, ale pomimo godzin spędzonych przed google jestem bezradny.
Kod w aspx.cs:
private void DodajPFXML(XmlDocument dokument, XmlElement element, string tag, string wartosc)
{
XmlElement nowaGalaz = dokument.CreateElement(tag);
XmlText tekst = dokument.CreateTextNode(wartosc);
element.AppendChild(nowaGalaz);
nowaGalaz.AppendChild(tekst);
}
protected void Button4_Click(object sender, EventArgs e)
{
XmlDocument wpisy = new XmlDocument();
wpisy.Load(Server.MapPath("works.xml"));
XmlElement nowyWpis;
nowyWpis = wpisy.CreateElement("gosc");
wpisy.DocumentElement.PrependChild(nowyWpis);
DodajPFXML(wpisy, nowyWpis, "nazwa", TextBox7.Text);
DodajPFXML(wpisy, nowyWpis, "tytul", TextBox8.Text);
DodajPFXML(wpisy, nowyWpis, "opis", TextBox9.Text);
DodajPFXML(wpisy, nowyWpis, "technologia", TextBox10.Text);
wpisy.Save(Server.MapPath("works.xml"));
Response.Redirect("main.aspx");
}
Wątek był już poruszany http://forum.php.pl/index.php?showtopic=12...rt=#entry615031 , jednak problem wydaje mi się nieco bardziej skomplikowany, inna sprawa że z wyjaśnienia zupełnie nic nie zrozumiałem a kod <img src="<xsl:value-of select="autor"/>" alt="foto" /> jest niemożliwy do wklepania bo generuje błędy;/