От новичка до гуру: Курсы программирования на CyberDuff

xsl не генерирует уникальный идентификатор для промежутков

Найдите следующую строку в XSL ниже:

<xsl:variable name="id" select="concat('CDTableCell', position())" />
        <span id="{$id}"

Я не получаю уникальный идентификатор для каждого из диапазонов после преобразования. Любые идеи? Показывает те же идентификаторы.

xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <html>
      <head>
        <script>
          function mycolorcontrastfx(bgColor)
          {
          return '#000000';
          }
        </script>
      </head>
      <body>
        <h2>My CD Collection</h2>
        <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="cd">
    <p>
      <xsl:apply-templates select="title"/>
      <xsl:apply-templates select="artist"/>
    </p>
  </xsl:template>

  <xsl:template match="title">
    Title:
    // Credit for help: http://stackoverflow.com/a/43546704/139698
    // As well as W3Schools
    <xsl:variable name="id" select="concat('CDTableCell', position())" />
    <span id="{$id}" style="background-color:#ff0000">
      <xsl:value-of select="."/>
    </span>
    <br />
    <script>
      var tdElem = document.getElementById('<xsl:value-of select="$id" />')
      var bgColor = tdElem.style.backgroundColor;
      var textColor = mycolorcontrastfx(bgColor);
      tdElem.style.color = textColor;
    </script>
  </xsl:template>      
</xsl:stylesheet>

xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="blackorwhite.xslt"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
  </cd>
  <cd>
    <title>Hide your heart</title>
  </cd>  
</catalog>
21.04.2017

Ответы:


1

Я не получаю уникальный идентификатор для каждого из диапазонов после преобразования.

Вы не получаете уникальные идентификаторы, потому что каждый title является первым потомком своего родителя cd. Я предлагаю вам использовать функцию generate-id() вместо position() (как вам советовали изначально).

21.04.2017
Новые материалы

Отслеживание состояния с течением времени с дифференцированием снимков
Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

Игра в прятки с данными
Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

«Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

Все о кейсах: Camel, Snake, Kebab & Pascal
В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..

Как работает дистанционное парное программирование и почему оно может изменить вашу жизнь
Серебряная пуля от одиночества и отвлекающих факторов во время обучения программированию Независимо от того, работаете ли вы или учитесь удаленно, велика вероятность, что одиночество и..