首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XSL解析XML "color“属性以填充表格单元格

使用XSL解析XML "color“属性以填充表格单元格
EN

Stack Overflow用户
提问于 2012-12-03 22:03:39
回答 1查看 2.3K关注 0票数 1

我正在学习XML,我遇到了以下问题:我的XML文件中有一个属性,它可以有一个颜色作为内容(例如<color>red</color>),但我不知道如何使用它。

我的XML:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<cars>
    <car year="2002" manufacturer="Jet" model="Sardine Can 1.6L">
        <meter>95664</meter>
        <color>silver</color>
        <price>099900</price>
        <dealersecurity buyback="no"/>
    </car>
    <car year="2004" manufacturer="Jet" model="Sardine Can 2.0">
        <meter>81283</meter>
        <color>red</color>
        <price>129900</price>
        <dealersecurity buyback="no"/>
    </car>
    <car year="2007" manufacturer="Jet" model="Sardine Can 2.0">
        <meter>49741</meter>
        <color>black</color>
        <price>169999</price>
        <dealersecurity buyback="yes"/>
    </car>
</cars>

我的XSL:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns="http://www.w3.org/1999/xhtml"
    version="1.0">
  <xsl:output method="xml"/>

  <xsl:template match="/cars">
    <html>
      <head><title>Second Hand Sardine Cans</title>  
        <link rel="stylesheet" type="text/css" href="style.css"/></head>
      <body>
      <h1>Second Hand Sardine Cans</h1>
      <table border="1"><th>Make</th><th>Model</th><th>Year</th><th>KMs</th><th>Color</th><th>Price</th><th>Warranty</th><xsl:apply-templates/></table>
      </body>
    </html>
  </xsl:template>

 <xsl:template match="cars/car">
  <tr><xsl:for-each select="cars/car"/>
  <td><xsl:value-of select="@manufacturer" /></td>
  <td><xsl:value-of select="@model" /></td>
  <td><xsl:value-of select="@year" /></td>
  <td><xsl:value-of select="meter" /></td>
        <xsl:apply-templates/></tr>
  </xsl:template>

  <xsl:template match="meter"/>

  <xsl:template match="color">
  <td><xsl:apply-templates /></td>
  </xsl:template>

  <xsl:template match="price">
  <td><xsl:apply-templates /></td>
  </xsl:template>

  </xsl:stylesheet>

到目前为止,我拥有的是:

但它不会显示“红色”或“黑色”,我希望该单元格填充完全相同的颜色。

谢谢!

编辑:我在Dimitre的回答的帮助下修复了它。我在<td><xsl:value-of select="meter" /></td>下面添加了<td bgcolor="{color}"><xsl:value-of select="color" /></td>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-03 22:12:23

只是在你的转换中改变

代码语言:javascript
复制
   <tr>

代码语言:javascript
复制
   <tr bgcolor="{color}">

或者,如果您确实希望只有一个具有该颜色的单元格,请在与 color匹配的模板中使用

代码语言:javascript
复制
   <td bgcolor="{.}">
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13684894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档