在 XSLT 中显示图像



我想在 XSLT 中的某个表格单元格中嵌入图像,但似乎无法使其工作。

我尝试了在这里找到的几件事,但没有一件奏效。我不知道如何选择通过实体嵌入在 DTD 中的图像并通过 XSLT 在浏览器中显示它。

输入 XML:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE games [
<!ELEMENT games (name, charcteristics)>
<!ELEMENT game (name, gameNumber)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT gameNumber EMPTY>
<!ELEMENT gameCover (#PCDATA)>
<!ELEMENT characteristics (genre*,studio*,year*,review*)>
<!ELEMENT genre (#PCDATA)>
<!ELEMENT studio (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT review (#PCDATA)>
<!ATTLIST gameNumber gameID ID #REQUIRED>
<!ATTLIST genre gameNum1 IDREF #REQUIRED>
<!ATTLIST genre type (action|RPG|FPS|Puzzle) "action">
<!ATTLIST studio gameNum2 IDREF #REQUIRED>
<!ATTLIST studio studName (EA|Ubisoft|Gameloft|Bethesda) "EA">
<!ATTLIST gameCover picture ENTITY #IMPLIED>
<!ATTLIST gameCover format NOTATION (jpg|gif) #IMPLIED>
<!ENTITY FCp SYSTEM "upload.wikimedia.org/wikipedia/en/1/18/Far_Cry_Primal_cover_art.jpg" NDATA jpg>
<!NOTATION jpg PUBLIC "jpg viewer">
<!NOTATION gif PUBLIC "gif viewer"> ]>
<games>
    <game>
        <name>FarCry:Primal</name>
        <gameNumber gameID="qJCGc" />
        <gameCover picture="FCp" format="jpg"></gameCover>
        <year>2016</year>
        <review>lololo</review>
    </game>
    <characteristics>
        <genre gameNum1="qJCGc" type="FPS"></genre>
        <studio gameNum2="qJCGc" studName="Ubisoft"></studio>
    </characteristics>
</games>

XSLT:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <h1>
            <font face="" color="#EAC67A">XML Каталог за видеоигри</font>
        </h1>
        <table>
            <tr>
                <td>
                    <!-- Image should be here -->
                </td>
            </tr>
        </table>
    </xsl:template>
</xsl:stylesheet>

我是XML和XSLT的新手,请帮助我。

它不是普遍支持的(在 I.E.、Chrome 和 Safari 中为我工作,但不是 Firefox),但您可以使用 unparsed-entity-uri() 获取实体的 URI

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="//game">
        <h1>
            <font face="" color="#EAC67A">XML Каталог за видеоигри</font>
        </h1>
        <table>
            <tr>
                <td>
                    <img src="{unparsed-entity-uri(gameCover/@picture)}"/>
                </td>
            </tr>
        </table>
    </xsl:template>
</xsl:stylesheet>

但。。。我注意到源文档中存在一些问题。URL 格式不正确(无方案),并且 DTD 存在错误(特征拼写不一致、game元素不完整等)。

这可能会给您带来一些问题。

相关内容

  • 没有找到相关文章

最新更新