如何在xslt中编写属性的文本?

时间:2018-01-08 17:28:10

标签: html xml xslt xpath

我有这个xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<?xml-stylesheet type="text/xsl" href="./products.xslt"?>

<!DOCTYPE Loja SYSTEM "LojaOnline.dtd">
<Loja>
    <produtos>
        <produto product_id="_12578987" vendedor_produto="_28565748">
            <nome>Computador HP_54000j</nome>
            <descrição>Computador recente com todas as funcionalidades para poder investir no seu futuro.</descrição>
        <características_técnicas>
            <característica nome="processador" valor="Intel Core i7-7500U Dual Core"/>
            <característica nome="frequência" valor="2,7 GHz"/>
            <característica nome="RAM" valor="8GB"/>
            <característica nome="disco SSD" valor="256GB"/>
            <característica nome="dimensão ecrã" valor="14'"/>
            <característica nome="peso" valor="1,53kg"/>
        </características_técnicas>
        <preço>379.00</preço>
        <data_de_inserção>2016/10/26</data_de_inserção>
        <links_para_imagens_do_produto>laptop.jpg</links_para_imagens_do_produto>
        <links_para_vídeos_do_produto/>
        <referências_para_produtos_relacionados/>
        <transportadora empresa="SEUR"/>
        <comentários>
            <comentário id="_c01" data="" utilizador="_29478382" avaliação="5">O serviço foi eficaz, cumprindo os prazos.</comentário>
            <comentário id="_c03" data="" utilizador="_29478382" parent="_c01">Chegando em muito boas condições.</comentário>
        </comentários>
    </produto>
    <produto product_id="_14285638" vendedor_produto="_29478382">
        <nome>Smartphone Samsung S6 Edge</nome>
        <descrição>O Samsung Galaxy S6 edge é um smartphone Android avançado e abrangente em todos os pontos de vista com algumas características excelentes.</descrição>
        <características_técnicas>
            <característica nome="RAM" valor="3GB"/>
            <característica nome="cor" valor="dourado"/>
            <característica nome="dimensão ecrã" valor="5,1'"/>
            <característica nome="sistema operativo" valor="android 5.0 Lollipop"/>
            <característica nome="memória interna" valor="32GB"/>
            <característica nome="resolução câmara" valor="16MP"/>
            <característica nome="resolução câmara frontal" valor="5MP"/>
            <característica nome="operador" valor="livre"/>
        </características_técnicas>
        <preço>680.90</preço>
        <data_de_inserção>2017/06/07</data_de_inserção>
        <links_para_imagens_do_produto link="https://i3.zst.com.br/images/smartphone-samsung-galaxy-s6-edge-32gb-g925i-16-0-mp-android-5-0-lollipop-wi-fi-3g-4g-photo41793894-12-31-31.jpg"/>
        <links_para_vídeos_do_produto link="https://youtu.be/tLy7MAdRXUA0"/>
        <referências_para_produtos_relacionados product_id="_12345323"/>
        <transportadora empresa="CTT"/>
        <transportadora empresa="UPS"/>
        <comentários></comentários>
    </produto>
    <produto product_id="_12345323" vendedor_produto="_29478382">
        <nome>Smartphone Samsung S8</nome>
        <descrição>O Samsung Galaxy S8 é um smartphone Android com características inovadoras que o tornam uma excelente opção para qualquer tipo de utilização.</descrição>
        <características_técnicas>
            <característica nome="RAM" valor="4GB"/>
            <característica nome="cor" valor="preto"/>
            <característica nome="dimensão ecrã" valor="5,8'"/>
            <característica nome="sistema operativo" valor="android 7.0 Nougat"/>
            <característica nome="memória interna" valor="64GB"/>
            <característica nome="resolução câmara" valor="Dual Pixel 12MP"/>
            <característica nome="resolução câmara frontal" valor="8MP"/>
            <característica nome="operador" valor="livre"/>
        </características_técnicas>
        <preço>819,90</preço>
        <data_de_inserção>2017/09/12</data_de_inserção>
        <links_para_imagens_do_produto/>
        <links_para_vídeos_do_produto/>
        <referências_para_produtos_relacionados product_id="_14285638"/>
        <transportadora empresa="MRW"/>
        <comentários/>
    </produto>
 </produtos>
</Loja>

xslt的一部分:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <!--<link rel="stylesheet" type="text/css" href="starter-template.css"/>-->
 <xsl:output method="html"/>

<xsl:template match="/">
<html>
<head>
   <title>Products</title>
   <link rel="stylesheet" type="text/css" href="blog-home-products.css"/>
   <link rel="stylesheet" type="text/css" 
href="bootstrap.min.products.css"/>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-8">
<p>&#160;</p>
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarsExampleDefault">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="file:///C:/Users/Leia/Desktop/MCSTORE%20-%20Final/MCSTOREHTML.html">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="file:///C:/Users/Leia/Desktop/MCSTORE%20-%20Final/startbootstrap-blog-home-gh-pages/Products.html">Products <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="file:///C:/Users/Leia/Desktop/MCSTORE%20-%20Final/MCSTOREHTML_purchases.html">Purchases <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="file:///C:/Users/Leia/Desktop/MCSTORE%20-%20Final/MCSTOREHTML_users.html">Users <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="file:///C:/Users/Leia/Desktop/MCSTORE%20-%20Final/MCSTOREHTML_Sellers.html">Sellers <span class="sr-only">(current)</span></a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search"/>
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>
<xsl:for-each select="Loja/produtos/produto">
<div class="card mb-4">
<center>
  <xsl:copy>
    <xsl:element name="img">
      <xsl:attribute name="src">
        <xsl:value-of select="links_para_imagens_do_produto" />
      </xsl:attribute>
      <xsl:attribute name="width">
        70%
      </xsl:attribute>
    </xsl:element>
  </xsl:copy>
</center>
<div class="card-body">
  <h2 class="card-title"><xsl:value-of select="nome"/></h2>
  <p class="card-text">
  <li><b>Price: </b><xsl:value-of select="preço"/> $</li>
  <li><b>Date: </b><xsl:value-of select="data_de_inserção"/> </li>
  <!-- HERE!!!!!!!!--> <li><b>RAM: <xsl:value-of select="características_técnicas/característica[@nome = RAM]/@valor"/> </b></li>
  <li><b>Color: <xsl:value-of select="características_técnicas/característica[@nome = color]/@valor"/> </b></li>
  </p>
  <a href="" class="btn btn-primary">Read More →</a>
</div>
</div>
</xsl:for-each>
<ul class="pagination justify-content-center mb-4">
  <li class="page-item">
    <a class="page-link" href="#">← Older</a>
  </li>
  <li class="page-item disabled">
    <a class="page-link" href="#">Newer →</a>
  </li>
</ul>
</div>
<div class="col-md-4">
<div class="card my-4">
  <h5 class="card-header">Search</h5>
  <div class="card-body">
    <div class="input-group">
      <input type="text" class="form-control" placeholder="Search for..."/>
      <span class="input-group-btn">
        <button class="btn btn-secondary" type="button">Go!</button>
      </span>
    </div>
  </div>
</div>
</div>
</div>
</div>
<footer class="py-5 bg-dark">
  <div class="container">
    <p class="m-0 text-center text-white">Copyright Ⓒ Your Website 2017</p>
  </div>
 <!-- /.container -->
</footer>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

我需要从那个xslt制作一个html。我有一个带有3个产品RAM的商店,我需要制作一个页面来展示3个产品。在div里面我需要把名字,价格和我放入RAM的困难。它就像“RAM:”@ valor“”。 .................................................. .................................................. .................................................. ........

1 个答案:

答案 0 :(得分:0)

您需要引用字符串文字,因此将características_técnicas/característica[@nome = RAM]/@valor更改为características_técnicas/característica[@nome = 'RAM']/@valor