使用XML& amp;显示页面上的图像XSL

时间:2015-03-05 04:10:48

标签: xml xslt

XML数据库联盟XSL 我想用可扩展标记语言( XML )和可扩展样式表语言( XSL )创建简单数据库联盟。目的是开发一个 SimpleCode数据库联盟,可以以简单的形式显示,以生成 联盟 足球俱乐部 / 联盟锦标赛信息

创建基础代码 XML文件

<League>
<Team id="Name_Team_id">
   <Team_Name>Manchester United</Team_Name>
   <description>Info of the Team Database League Premier League</description>
   <City>Londres </City>
   <Stadium>Teatro de los Sueños </Stadium>
   <Players>
      <person>
      <first_name>W. Rooney</first_name>
      <Country_birth>Inglaterra</Country_birth>  
      <Position>DC, FW</Position>
      </person> 
    </Players>
</Team>
</League> 

XSL文件:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0"/>

<!-- Definimos Template Root de la hoja completa -->
<xsl:template match="/">
  <html>
    <head>
        <title>XML Database League XSL</title>
    </head>
    <body>
        <h1>XML Database League</h1>

        <xsl:apply-templates select="League/Team">
            <xsl:sort select="@id"/>
        </xsl:apply-templates>
    </body>
  </html>
</xsl:template>
<!-- Fin Template Root de la hoja completa -->

<!-- Definimos Template XSL & Buscamos Los Teams del XML -->
<xsl:template match="Team">
  <div>
    <h2>
        <xsl:value-of select="Team_Name"/>
        (
        <xsl:value-of select="@id"/>
        )
    </h2>

<!-- Buscamos descripcion de los Teams del XML -->
    <xsl:for-each select="description">
        <p>
            <xsl:value-of select="."/>
        </p>
    </xsl:for-each>

<!-- Definimos & Buscamos Los Players del XML, Generamos Tabla Estadisticas -->
  <table border="1">
      <tr bgcolor="#2282b1">
      <th>Name</th>
      <th>Country</th>
     <th>Position</th>
     </tr>

    <xsl:for-each select="Players/person">
      <tr bgcolor="#a9b8c2">
      <td><xsl:value-of select="first_name"/></td>
      <td><xsl:value-of select="Country_birth"/></td>
      <td><xsl:value-of select="Position"/></td>
      </tr>
    </xsl:for-each>
  </table>
<!-- Fin de Los Players del XML -->

  </div>

<!-- Fin Template XSL match="Team"  -->
</xsl:template>
</xsl:stylesheet>

注意:代码高于正常,可以在该链接中测试: http://xml.we11.net/ligapremier.xml但是当使用代码发布图像时,如:徽标小组玩家不显示或显示图片? ... 例如哥伦比亚带图像的代码仅供测试

文件带有Id团队的XML 图片支持

<League>
<Team id="ManchesterUnited" img="colombia.png">
   <Team_Name>Manchester United</Team_Name>
   <description>Info of the Team Database League Premier League</description>
   <City>Londres </City>
   <Stadium>Teatro de los Sueños </Stadium>
   <Players>
      <person>
      <first_name>W. Rooney</first_name>
      <Country_birth>Inglaterra</Country_birth>  
      <Position>DC, FW</Position>
      </person> 
    </Players>
</Team>
</League>

为什么不显示具有团队ID的图像? 我迷失了代码...
任何帮助或任何建议协作者都是欢迎...

可以在链接中测试...不显示团队的图像! :(

先谢谢你的帮助!

学习 Xml &amp; Xsl :)

1 个答案:

答案 0 :(得分:0)

如果您询问如何生成<img>@src指向Team/@img中的图片:

@src值使用Attribute Value Template更简单,更简洁,如下所示:

<xsl:template match="Team">
  <div>
    <h2>
      <img src="{@img}"/>
      <xsl:value-of select="Team_Name"/>
      (
      <xsl:value-of select="@id"/>
      )
    </h2>

您还可以使用更详细的xsl:attribute

<img>
  <xsl:attribute name="src">
    <xsl:value-of select="@img"/>
  <xsl:attribute>
</img>

当然,如果XML文件的相对路径无法解析,您需要弄清楚如何构建图像的正确URL。

例如:

<img src="http://xml.we11.net/images/{@img}"/>