Вот основной XSL. Я пытаюсь извлечь элемент q_DECISION_NUMBER и использовать его для создания как элемента данных, так и атрибута ID. Но элемент данных содержит пробелы, так что пробелы также выбираются и производят: id = "23-7 / 16"
Я пытался использовать normalize-space () и translate (), но в этом случае ни одна из них не работает.
У кого-нибудь есть предложение?
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Untitled Document</title>
</head>
<body>
<xsl:apply-templates select="Root"/>
</body>
</html>
</xsl:template>
<xsl:template match="q_DECISION_NUMBER">
<h2 class="q_DECISION_NUMBER"><xsl:attribute name="id">d<xsl:apply-templates/>
</xsl:attribute><xsl:apply-templates/></h2>
</xsl:template>
</xsl:stylesheet>
Вот пример XML-файла с типичными данными, а не весь XML-источник:
<Root><DECISION><q_DECISION_NUMBER>1-1/1 </q_DECISION_NUMBER></DECISION>
<DECISION><q_DECISION_NUMBER>1-1/2 </q_DECISION_NUMBER></DECISION>
<DECISION><q_DECISION_NUMBER>1-1/3 </q_DECISION_NUMBER></DECISION>
</Root>
Обратите внимание на пространство в элементе данных выше. Этот пробел выбирается атрибутом ID, но если мы используем ID в качестве места назначения гиперссылки, он не работает. Если мы ищем и удаляем завершающий пробел, идентификатор работает нормально. Возможно, это что-то простое, но я не могу понять это.