我想在 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
元素不完整等)。
这可能会给您带来一些问题。