我想在 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的新手,请帮助我。
答案 0 :(得分:3)
它不受普遍支持(在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
元素不完整等)。
这可能会给你带来一些问题。