Имя: Пароль:
1C
 
XSLT и передача параметров в шаблон
0 Яплакал
 
14.04.16
10:30
Есть вот такой шаблон XSLT

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    version="1.0">
    <xsl:param name="ws_user"/>
    <xsl:param name="ws_pass" />
    <xsl:template name="МойШаблон" match="/">
        <xsl:element name="XXX">
            <xsl:value-of select="$ws_user"/>
        </xsl:element>
        <xsl:element name="YYY">
            <xsl:value-of select="$ws_pass"/>
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>


В коде

Преобразование = Новый ПреобразованиеXSL;
Преобразование.ЗагрузитьИзСтроки(XSLT);
Преобразование.ДобавитьПараметр("ws_user", "222");    
Преобразование.ДобавитьПараметр("ws_pass", "44443");
СтрXMLРезультат = Преобразование.ПреобразоватьИзСтроки(СтрВхXML);

вот если параметры передавать числовые значение в результирующей xml все заполняется, а вот если передать например
Преобразование.ДобавитьПараметр("ws_user", "Вася");  

или любое другое слово, в xml на выходе пусто
1 asady
 
14.04.16
10:35
(0) попробуй вместо
<xsl:value-of select="$ws_user"/>
поставить
<xsl:text ="$ws_user"/>
2 Яплакал
 
14.04.16
10:54
(1) xsl:text - это другое, не катит это тут
3 asady
 
14.04.16
11:07
(2) тогда попробуй
xmlns:xsl="http://www.w3.org/TR/WD-xsl
4 Яплакал
 
14.04.16
11:18
(3) в таком случаи не трансформирует, а выдает текст шаблона
5 asady
 
14.04.16
11:33
(0) попробуй без 1С - тупо в браузере
натрави на свой xml шаблон твой xsl
если прокатывает - то проблема на стороне 1С
там можно платформу обновить например
6 Chainsaw
 
14.04.16
11:48
(0) Это известная платформенная ошибка работы с кириллическими строковыми параметрами

Включай значение в спецузел в преобразуемом XML или прибивай гвоздями в шаблоне как <xsl:param name = ... select = ... </xsl:param>
Ну и не забудь про маскировку служебных символов XML
7 Яплакал
 
14.04.16
11:51
(6) это не только с кириллицей, латиница так же не выводится
8 Яплакал
 
14.04.16
11:52
(5) а как я в браузере инициализирую параметры?