У меня очень странное поведение, когда я получил мутации в узле в xml, когда пытаюсь разобрать его с помощью XSLT.XSLT странное поведение с умлаутом (мутация)
Итак, теперь мы предполагаем, что CustomerName имеет значение «MÖP».
В этом случае результирующий HTML «а» тег будет иметь HREF на «M% C3% B6P»
<a href="{CustomerName}">
<xsl:value-of disable-output-escaping="yes" select="CustomerName"/>
</a>
В этом случае результирующий HTML «DIV» тег будет иметь идентификатор " MÖP '
<div style="display:none">
<xsl:attribute name="id"><xsl:value-of select="CustomerName"/></xsl:attribute>
</div>
Похоже, что атрибут href в теге имеет какое-то отношение к нему.
Вопрос, почему это так? Что я могу сделать в обоих случаях, я получил тот же результат?
Greetz
Но вы могли бы также рассказать мне, как я мог бы сделать это иначе, так что значение атрибута id будет экранировано одинаково? Я работаю под .Net, и в этом случае мне пришлось реализовать Saxon.Net Lib, чтобы преобразовать его, потому что .NET не работает с XSLT2.0. Когда я мог выбирать, я не хочу использовать другую 3. Party Lib. – luke
Нет, значения id не должны иметь такой формат. Если вы хотите, чтобы они были одинаковыми, вы должны попытаться превратить их в ссылки на символы (так что MÖP в обоих случаях станет M Ö P). Но я не уверен, как это сделать с XSLT. –
Если вы используете процессор XSLT 2.0, например Saxon 9, то вы можете использовать такие функции, как http://www.saxonica.com/documentation/functions/intro/escape-html-uri.xml соответственно http://www.saxonica.com /documentation/functions/intro/encode-for-uri.xml. Процессоры XSLT 1.0 не поддерживают эти функции, а .NET XslCompiledTransform вы можете использовать функции/объекты расширения, как описано в http://msdn.microsoft.com/en-us/library/6datxzsd.aspx. Если вам нужна помощь в этом, то подумайте, чтобы начать новый вопрос. –