|
помогите с XSLT - замена значения атрибута тэга
| ☑ |
0
kittystark
26.01.23
✎
16:37
|
в некотором XML (для ЭДО), есть тэг
<Документ КНД="1115131" Функция="ДОП" ...>
нужно заменить его на
<Документ КНД="1115131" Функция="СЧФДОП" ...>
с помощью какого XSLT 1.0 можно это сделать?
попытка в лоб применить <xsl:attribute name="Функция">СЧФДОП</xsl:attribute>
выдает xsltParseStylesheetTop: unknown attribute element
|
|
1
kittystark
26.01.23
✎
17:21
|
<xsl:template match="@Функция='ДОП'">
<xsl:text>СЧФДОП</xsl:text>
</xsl:template>
не прокатывает
|
|
2
kittystark
26.01.23
✎
17:37
|
<xsl:when test="@Функция = 'ДОП'">
<xsl:text>СЧФДОП</xsl:text>
</xsl:when>
выдает ошибку xsltParseStylesheetTop: unknown when element
|
|
3
kittystark
27.01.23
✎
10:52
|
ап
|
|
4
kittystark
04.02.23
✎
20:59
|
после общения в соседней ветке решил привести решение
тхт = новый ТекстовыйДокумент();
тхт.Прочитать( имяФайла, "windows-1251" );
стр = тхт.ПолучитьТекст();
стр = RegExpReplace( стр, "Функция\s*=\s*""ДОП""", "Функция=""СЧФДОП""" );
тхт.УстановитьТекст( стр );
тхт.Записать( имяФайла, "windows-1251" );
|
|
5
kittystark
04.02.23
✎
21:00
|
Function RegExpReplace( str, pattern, replacement ) export
RegExp = new COMObject("vbscript.regexp");
RegExp.IgnoreCase = true;
RegExp.MultiLine = true;
RegExp.Global = true;
RegExp.Pattern = pattern;
return RegExp.Replace(str,replacement);
EndFunction
|
|
Ошибка? Это не ошибка, это системная функция.