создать атрибут и заполнить его значением узла xslt - PullRequest
0 голосов
/ 20 ноября 2019

Я хочу сделать это, используя xslt, плохо знакомый с этим и борющийся.

<xsl:template match="h1"> 
<h1 title=""> 
<xsl:apply-templates select="@* | node()"/> 
</h1> 
</xsl:template>

Пример XML

<h1>This is the inner text <para>some other text</para>
</h1>

Желаемый вывод

  <h1 title="This is the inner text"><para>some other text</para>
</h1>

1 Ответ

1 голос
/ 20 ноября 2019

Я считаю, что следующее должно работать. Вы можете удалить свой шаблон для h1, так как он будет лишним:

<xsl:template match="h1/node()[1][self::text()]">
  <xsl:attribute name="title">
    <xsl:value-of select="." />
  </xsl:attribute>
</xsl:template>

Этот шаблон соответствует текстовому узлу, когда он является первым дочерним узлом h1, и заменяет его на * 1006. * атрибут, значение которого равно значению текстового узла.

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