好的,我有2个XML(一个用于动漫和电影)文件(使用相同的标签和DTD,因此您只需要查看其中一个XML文件的格式)。 1 XML(Movie XML文件)文件具有以下格式......
<Stories>
<Fan_Fiction>
<Genre> Movie </Genre>
<World> The Matrix </World>
<Story>
<Title Alternative_Title="The Matrix Sensolutions"> The Matrix Revolverlutions </Title>
<Year_Made> 2003 </Year_Made>
<Author Gender="Male">
<First_Name> James </First_Name>
<Last_Name> Blake </Last_Name>
</Author>
<Author_Country> Unknown </Author_Country>
<Language> English </Language>
<Theme> Reality </Theme>
<Theme> Artificial Intelligence </Theme>
<Theme> Freedom </Theme>
<Content_Warning> Intense violence. Nudity. Strong language. Drug use. </Content_Warning>
<Description> In this alternative ending to the Matrix trilogy; we find Neo has survived his epic battle with Smith.
However, freeing humanity from the Matrix is proving more difficult than expected </Description>
<Link> http://matrix.wikia.com/wiki/Neo </Link>
<Image> Neo.jpg </Image>
</Story>
</Fan_Fiction>
是的,我在XML文件中为每部电影都有一个“Fan_Fiction”标签(包含所有子标签)。
基本上,第二个XML(Anime主题XML文件)文件具有完全相同的格式,除了它在每个“Genre”标记内都有“Anime”。
好的,现在我有一个XSLT文件,它将这两个XML文件输出为HTML(我可以将两个XML文件链接到一个XSL文件,因为它们共享相同的标签和DTD)。我的问题是如何使用HTML命令(我的XSLT文件中的"<img src=" " />"
命令)来显示2个XML文件中NAMED的图像(XML文件的“Neo.jpg”部分)。
好的,所以它似乎很多,但基本上我被告知可以在我的XSL文档中使用"<img src=" " />"
命令,这样当我“运行”2个XML文件时,它们将引用我的XSLT文件&amp;分别显示他们的图像。如何在XSLT中使用HTML命令执行此操作,以便它适用于这两个文档?
答案 0 :(得分:2)
当我必须这样做时,我想出了
<img alt="">
<xsl:attribute name="src">
<xsl:value-of select="Stories/Fan_Fiction/Story/Image"/>
</xsl:attribute>
</img>
在XSLT文件中。使用</img>
和所有内容看起来有点傻,但它运行正常!在Firefox和Opera中,就是这样。 Chrome似乎不想合作,因此您可能需要进行一些实验。无论如何,我希望这会有所帮助。
编辑:这是一个更完整的xsl文件,它与您问题中的文件一起使用,并循环遍历所有Fan_Fiction元素。
<?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>
<title>Fanfix</title>
<body>
<xsl:for-each select="Stories/Fan_Fiction">
<h1><xsl:value-of select="World"/></h1>
<h2><xsl:value-of select="Story/Title"/></h2>
<img alt="">
<xsl:attribute name="src">
<xsl:value-of select="Story/Image"/>
</xsl:attribute>
</img>
<p>Author: <xsl:value-of select="Story/Author/First_Name"/>
<xsl:value-of select="Story/Author/Last_Name"/></p>
<p>etc</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我在http://strictquirks.nl/temp/neo/stories.xml上放了一个演示,以便您可以看到它的实际效果。
顺便说一句,我不得不删除XML中img名称周围的空格,因为这是它在Chrome中不起作用的原因:Chrome认为文件名包含空格。