Имя: Пароль:
1C
 
Преобразование XSL
0 MuI_I_Ika
 
19.06.07
19:26
Привыполнении следующего кода:

ИмяФайлаПриемника = КаталогВременныхФайлов()+"ОбщийЖР.xml";
   Если Счетчик = 1 Тогда
       КопироватьФайл(ИмяФайлаЖР,ИмяФайлаПриемника);
   КонецЕсли;
   
   СтрокаПреобразования = "<xsl:stylesheet version=""1.0"" xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>;
|<xsl:template match=""/"">
|    <xsl:for-each select=""node()"">
|        <xsl:copy>        
|            <xsl:for-each select=""node()"">
|                <xsl:copy>                    
|                    <xsl:for-each select=""node()"">
|                        <xsl:copy-of select="".""/>
|                    </xsl:for-each>
|                    <xsl:element name=""v8e:DataBase"">DataBase</xsl:element>
|                </xsl:copy>
|            </xsl:for-each>
|        </xsl:copy>
|    </xsl:for-each>    
|</xsl:template>
|</xsl:stylesheet>
|";
   
   Преобразование = Новый ПреобразованиеXSL;
   Преобразование.ЗагрузитьИзСтроки(СтрокаПреобразования);
   Результат = Преобразование.ПреобразоватьИзФайла(ИмяФайлаЖР);

Выдает ошибку Не установлен MS XML Core Services 4.0
Хотя он у меня стоит. В чем может быть проблема?
1 MuI_I_Ika
 
19.06.07
19:35
Для примера. Обрабатывается следующий XML:

<?xml version="1.0"?>
<v8e:EventLog xmlns:v8e="http://v8.1c.ru/eventLog" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <v8e:Event>
       <v8e:Level>Information</v8e:Level>
       <v8e:Date>2007-05-17T12:22:14</v8e:Date>
       <v8e:ApplicationName>Config</v8e:ApplicationName>
       <v8e:ApplicationPresentation>Конфигуратор</v8e:ApplicationPresentation>
       <v8e:EventName>_$Session$_.Start</v8e:EventName>
       <v8e:EventPresentation>Сеанс.Начало</v8e:EventPresentation>
       <v8e:UserID>3819bd07-7b2d-46e5-b02f-e2ce7fa35d23</v8e:UserID>
       <v8e:UserName>Admin</v8e:UserName>
       <v8e:Computer>SEPL08860IT</v8e:Computer>
       <v8e:MetadataName/>
       <v8e:MetadataPresentation/>
       <v8e:Comment/>
       <v8e:Data xsi:nil="true"/>
       <v8e:DataPresentation/>
   </v8e:Event>
   <v8e:Event>
       <v8e:Level>Information</v8e:Level>
       <v8e:Date>2007-05-17T12:22:40</v8e:Date>
       <v8e:ApplicationName>1CV8</v8e:ApplicationName>
       <v8e:ApplicationPresentation>1С:Предприятие</v8e:ApplicationPresentation>
       <v8e:EventName>_$Session$_.Start</v8e:EventName>
       <v8e:EventPresentation>Сеанс.Начало</v8e:EventPresentation>
       <v8e:UserID>3819bd07-7b2d-46e5-b02f-e2ce7fa35d23</v8e:UserID>
       <v8e:UserName>Admin</v8e:UserName>
       <v8e:Computer>SEPL08860IT</v8e:Computer>
       <v8e:MetadataName/>
       <v8e:MetadataPresentation/>
       <v8e:Comment/>
       <v8e:Data xsi:nil="true"/>
       <v8e:DataPresentation/>
   </v8e:Event>
   <v8e:Event>
       <v8e:Level>Information</v8e:Level>
       <v8e:Date>2007-05-17T12:28:07</v8e:Date>
       <v8e:ApplicationName>1CV8</v8e:ApplicationName>
       <v8e:ApplicationPresentation>1С:Предприятие</v8e:ApplicationPresentation>
       <v8e:EventName>_$Data$_.New</v8e:EventName>
       <v8e:EventPresentation>Данные.Добавление</v8e:EventPresentation>
       <v8e:UserID>3819bd07-7b2d-46e5-b02f-e2ce7fa35d23</v8e:UserID>
       <v8e:UserName>Admin</v8e:UserName>
       <v8e:Computer>SEPL08860IT</v8e:Computer>
       <v8e:MetadataName>Catalog.Бюджеты</v8e:MetadataName>
       <v8e:MetadataPresentation>Справочник Бюджеты</v8e:MetadataPresentation>
       <v8e:Comment/>
       <v8e:Data xsi:type="CatalogRef.Бюджеты">b918a37c-b1f0-11db-9386-00145e698d3a</v8e:Data>
       <v8e:DataPresentation>БДДС</v8e:DataPresentation>
   </v8e:Event>
</v8e:EventLog>
2 asady
 
19.06.07
19:40
(0) на партнерском форуме пробегало, что сообщения об ошибках типа твоей не всегда адекватны.
на самом деле возможно просто ошибка в тексте преобразования. например неправильное название узла. проверь.

еще.
добавь в начало
<?xml version="1.0"?>
3 MuI_I_Ika
 
19.06.07
19:46
(1) Добавление в начало не помогло. Может есть какая-нибудь утилитка, которой можно нормально оттестировать.
4 asady
 
19.06.07
19:51
(3)
проверь вот содержимое файла  xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform> target="_blank">http://www.w3.org/1999/XSL/Transform>;;
<xsl:template match="/">
<xsl:for-each select="node()">
<xsl:copy>        
<xsl:for-each select="node()">
<xsl:copy>                    
<xsl:for-each select="node()">
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:element name="v8e:DataBase">DataBase</xsl:element>
</xsl:copy>
</xsl:for-each>
</xsl:copy>
</xsl:for-each>    
</xsl:template>
</xsl:stylesheet>

все правильно? особенно вторая строка - я не уверен, что правильно разобрался с кавычками.

методика простая сохраняешь в xsl  и открываешь через ie.
5 asady
 
19.06.07
20:08
(0) ; - у тебя стоит в строке преобразования зачем?
6 KAO111
 
20.06.07
08:38
для проверки xsl и xml файла хорошо использовать консольную утилиту msxsl

http://msdn2.microsoft.com/en-us/library/aa468552.aspx