我正在为一个班级设计一个项目,该项目需要显示从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月才开始学习硕士学位的,我来自语言学背景),因此,如果有任何回应是很感激的,将不胜感激。对我来说愚蠢! (虽然不多,但是您知道它是一个初学者的感觉。)
答案 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相同的逻辑即可。