我有一个像这样的XML:
<Root>
<Content>
<Paragraph>
<Image reference="folder-1/folder-2/imagefile.xml"/>
</Paragraph>
</Content>
</Root>
在引用&#34;文件夹-1 /文件夹-2 / imagefile.xml&#34;中,我将图像文件的路径作为xml标记的值。
如何访问图像文件并将路径作为值传递给标记的src属性?
我尝试了Read properties file or a text file in xsl中发布的解决方案,但它没有用。有没有其他办法可以做到这一点? 欢迎任何帮助。感谢所有提前。
编辑:
imagefile.xml包含以下代码:
<Container>
<Element>
<ImagePath>
folder/folder/imagename.jpg
</ImagePath>
<AltImage>
folder/folder/altimage.jpg
</AltImage>
</Element>
</Container>
当我的意思是解决方案不起作用时,我的意思是html输出中的img标记的src属性值为空,如下所示:<img src="" alt=""></img>
我使用的XSL模板是这样的:
<xsl:template match="Image">
<img src="{./Container/Element/ImagePath}"/>
</xsl:template>
我希望像这样的图像标签
<img src = "folder/folder/imagename.jpg"/>
但它是空的。在Firefox中,我看到一个图像损坏的缩略图,有点像没有图像时得到的缩略图。
答案 0 :(得分:2)
希望这有帮助
<xsl:template match="/">
<good>
<xsl:variable name="secondData" select="document(Root/Content/Paragraph/Image/@reference)"/>
<img>
<xsl:attribute name="src">
<xsl:value-of select="$secondData//AltImage"/>
</xsl:attribute>
</img>
</good>
</xsl:template>
唯一重要的是“imagefile.xml”文件应该在同一个目录中,你的源或第一个xml是!! 我使用了.NET自己的XslCompiledTransform,解析器在源xml所在的文件夹中查找。