Ошибка с подстрокой в ​​XSLT - PullRequest
0 голосов
/ 07 октября 2011

Мне было интересно, есть ли в XSLT возможность удалить содержимое элемента, если число символов превышает 200. Ниже я использую все элементы содержимого.

Предупреждение: XSLTProcessor :: transformToXml ()[xsltprocessor.transformtoxml]: ошибка времени выполнения: файл stylesheet.xslt строка 42 элемента apply-templates в index.php в строке 20

Предупреждение: XSLTProcessor :: transformToXml () [xsltprocessor.transformtoxml]: «выбрать»выражение не оценивается для набора узлов.в index.php в строке 20

<xsl:template match="a:content | description">
  <c>
        <xsl:apply-templates select="substring('node() | @*', 1, 200)" />
  </c>
</xsl:template>

1 Ответ

1 голос
/ 07 октября 2011
<xsl:apply-templates select="substring('node() | @*', 1, 200)" />

Выражение Xpath, указанное в атрибуте select выше, имеет тип xs:string.

Однако в XSLT 1.0 и XSLT 2.0 шаблоны можно применять только к узлам, но не к строкам. Вот почему вы получаете сообщение об ошибке.

Мне кажется, что вы, скорее всего, хотите, это :

<xsl:value-of select="substring(., 1, 200)" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...