将图像整合到XSL + XML中

时间:2018-12-07 10:57:59

标签: html xml image xslt

我正在为一个班级设计一个项目,该项目需要显示从XML文档生成的电影信息。在查找可能与我的问题有关的其他问题时,我并没有真正理解答案,解决方案也没有任何改变。我要发生的事情是对图像进行一次引用,并以其对“电影”元素的每个实例进行实例化,使其与标题以及其他属性和元素的工作方式相同。这是我的XML代码中的示例“电影”元素:

<movie>
        <title title="L'Ile aux chiens" year="2018" language="English, Japanese" genre="Animation, Adventure, Comedy" imdb="tt5104604"/>
        <poster src="isle of dogs.png"/>
        <director>Wes Anderson</director>
        <writers names="Wes Anderson, Roman Coppola, Jason Schwartzman, Kunichi Nomura"/>
        <actors names="Bryan Cranston, Koyu Rankin, Edward Norton, Bob Balaban"/>
        <plot>Set in Japan, Isle of Dogs follows a boy's odyssey in search of his lost dog.</plot>
    </movie>

这是到目前为止我的XSL代码:

     <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head>
                <link rel="stylesheet" type="text/css" href="film_css.css"/>
                <title>Discography of Wes Anderson</title>
            </head>
            <body>
                <h1>Discography of Wes Anderson</h1>
                <xsl:for-each select="//movie">
                    <h3><xsl:value-of select="title/@title"/></h3>
                    <xsl:value-of select="//poster"/>
                        <img src="{src}"/>
                    <div id="infos">
                        <p>Year: <xsl:value-of select="title/@year"/></p>
                        <p>Writers: <xsl:value-of select="writers/@names"/></p>
                        <p>Actors: <xsl:value-of select="actors/@names"/></p>
                        <p>Plot: <xsl:value-of select="plot"/></p>
                    </div>
                </xsl:for-each> 
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

我仍然对所有这些编码知识还是陌生的(我是从9月才开始学习硕士学位的,我来自语言学背景),因此,如果有任何回应是很感激的,将不胜感激。对我来说愚蠢! (虽然不多,但是您知道它是一个初学者的感觉。)

2 个答案:

答案 0 :(得分:2)

src不是movie的子元素,您需要给出直至@src的正确路径,例如:

<img src="{poster/@src}"/>

答案 1 :(得分:0)

代替

<xsl:value-of select="//poster"/>
<img src="{src}"/>

使用

<img src="{poster/@src}"/>

您只需要应用与Year,Writer,Actor和Plot相同的逻辑即可。