также 1C 8 при работе XDTO может добавить атрибут type фильтр на атрибут выглядит так @*[name(.)!='type'] и добавлен перенос строки, иначе весь XML будет в одну строку |<xsl:text> |</xsl:text>
Функция УдалитьПространство(хмл) //хмл - полное имя файла
Х = Новый COMОбъект("Msxml2.DOMDocument.6.0");
х.async = 0;
х.validateOnParse = 0;
х.resolveExternals=0;
х.load(хмл);
xslDoc= Новый COMОбъект("MSXML2.DOMDocument.6.0");
xslDoc.async = 0;
xslDoc.loadXML("<?xml version=""1.0"" encoding=""utf-8""?>
|<xsl:stylesheet version=""1.0""
| xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
| <xsl:output method=""xml"" encoding=""UTF-8"" indent=""no""/>
| <xsl:template match=""/|comment()|processing-instruction()"">
| <xsl:copy>
|<!-- go process children (applies to root node only) -->
| <xsl:apply-templates/>
| </xsl:copy>
| </xsl:template>
| <xsl:template match=""*"">
| <xsl:element name=""{local-name()}"">
| <!-- go process attributes and children -->
| <xsl:apply-templates select=""@*[name(.)!='type']|node()""/>
| </xsl:element>
|<xsl:text>
|</xsl:text>
| </xsl:template>
|
| <xsl:template match=""@*"">
| <xsl:attribute name=""{local-name()}"">
| <xsl:value-of select="".""/>
| </xsl:attribute>
| </xsl:template>
|</xsl:stylesheet>
|");
xmlDoc= Новый COMОбъект("MSXML2.DOMDocument.6.0");
// XML = xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""");
х.transformNodeToObject(xslDoc, xmlDoc);
//xmlDoc.insertBefore(XML,);
xslDoc=0;
х=0;
xmlDoc.save(хмл);
xmlDoc=0;
Возврат 1;
КонецФункции // УдалитьПространство()
{42} Переменной xslDoc присвоено значение, но оно нигде не используется {43} Переменной Х присвоено значение, но оно нигде не используется {45} Переменной xmlDoc присвоено значение, но оно нигде не используется {46} Функция всегда возвращает одно и тоже значение Орфографическая ошибка в Msxml2: Msxml Орфографическая ошибка в stylesheet (найдено 2): stylesheet Орфографическая ошибка в xmlns: xmlns
Удалить недопустимые символы XML
ПространстваИменИнформационныхСсылок (БСП)
#1, 21 июля 2020 16:28
Для каких целей применяется? Стандартных средств платформы не достаточно?
#2, ред. 21 июля 2020 16:56
(1) Константин Аванесов, код под разные платформы, один на все ) в основном работа с заранее неизвестными именами пространств.