Удалить пространство имен из готового файла xml

Дионисий 11 1

также 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;
КонецФункции // УдалитьПространство()
2
{42} Переменной xslDoc присвоено значение, но оно нигде не используется
{43} Переменной Х присвоено значение, но оно нигде не используется
{45} Переменной xmlDoc присвоено значение, но оно нигде не используется
{46} Функция всегда возвращает одно и тоже значение
Орфографическая ошибка в Msxml2: Msxml
Орфографическая ошибка в stylesheet (найдено 2): stylesheet
Орфографическая ошибка в xmlns: xmlns

Комментарии

Константин Аванесов
#1, 21 июля 2020 16:28

Для каких целей применяется? Стандартных средств платформы не достаточно?


Дионисий
#2, ред. 21 июля 2020 16:56

(1) Константин Аванесов, код под разные платформы, один на все ) в основном работа с заранее неизвестными именами пространств.


См. также

Удалить недопустимые символы XML

XMLТипСсылки (БСП)

ПрефиксыПространствИмен (БСП)

ПространстваИменИнформационныхСсылок (БСП)

ПространствоИмен (БСП)

УдалитьНедопустимыеСимволыXML (БСП)

Пакет (БСП)

Модератору