Я использую XslCompiledTranform
для преобразования XML / XSL.
Это мой тест XSL:
<span title="{./tooltip}" anattribute="{./tooltip}">
<xsl:value-of select="./tooltip"/>
</span>
Вы видите, что для тестирования я ставлю то же значение XSL,а именно @tooltip
в атрибут title
, неопределенный атрибут anattribute
, а также в виде текста в узел.
В моем XML код @tooltip
кодируется как "this is a <script> tag
".Чтобы быть более точным: в значении нет HTML-тегов.Все закодировано, следовательно, <
и >
Если я преобразую вышеприведенное, я получу в результате:
<span title="this is a <script> tag" anattribute="this is a <script> tag">
this is a <script> tag
</span>
Почему сохраняется кодировка для значений узлов и почемуподстановка закодированных значений для атрибутов?И самое главное: как я могу остановить XslCompiledTransform
от такого поведения?Я хочу, чтобы мои атрибуты точно были такими, как я их указал, и магическое преобразование не происходило.
Мои настройки следующие:
var oXSL = new XslCompiledTransform( );
XsltSettings oXslSettings = new XsltSettings( );
XmlUrlResolver oUriResolver = new XmlUrlResolver( );
oXslSettings.EnableDocumentFunction = true;
oXslSettings.EnableScript = false;
oXSL.Load( sXslPath, oXslSettings, oUriResolver );
René