Создайте новый элемент с фиксированным значением и атрибутом dynamic c с помощью xslt - PullRequest
0 голосов
/ 27 мая 2020

если я пытаюсь понять xslt, где я застрял в месте, где я хочу добавить элемент с фиксированным значением и динамическим c атрибутом

ввод:

<newsItem parentGUID="fakeGuid">
</newsItem>

желаемый результат:

<newsItem>
  <parent Key="fakeGuid">News</parent>
<newsItem>

Текущее значение Xslt (значение отсутствует в фактическом выходе)

<xsl:template match="NewsItem">
  <xsl:element name="Parent">
      <xsl:attribute name="Key">
        <xsl:value-of select="@parentGUID"/>
      </xsl:attribute>
      <xsl:value-of select="News"/>
  </xsl:element>
</xsl:template>

Может ли кто-нибудь указать мне, что я делаю неправильно?

С уважением

1 Ответ

1 голос
/ 27 мая 2020

Инструкция:

<xsl:value-of select="News"/>

ищет дочерний элемент с именем News, чтобы извлечь его строковое значение. Чтобы вывести буквальный текст «Новости», попробуйте:

<xsl:text>News</xsl:text>

Обратите внимание, что вам не нужно использовать xsl:element для создания буквального элемента результата. Чтобы получить результат, который вы показываете, вы можете сделать:

<xsl:template match="newsItem">
    <xsl:copy>
        <Parent key="{@parentGUID}">News</Parent>
    </xsl:copy>
</xsl:template>

Прочтите о шаблонах значений атрибутов , чтобы понять, как это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...