Я использую ThumbGen для генерации листов фильма. Для моих цифровых фильмов. Он использует XSL. и моя идея состояла в том, чтобы заставить его взять «актеров» и загрузить изображение из папки с их фотографиями. Я искал в Интернете, и у кого-то был вопрос о том, как исправить проблему, делая то же самое. Поэтому я использовал это в качестве основы, но не смог заставить его работать.Проблема XSL/XML - проблема с атрибутом и пространством имен
Я получаю сообщение об ошибке: «Узлы атрибутов и пространства имен не могут быть добавлены к родительскому элементу после добавления текста, комментария, узла pi или подэлемента».
В моей попытке получить эту работу я нашел это:
И используя то, что его «исправление», что было сказано ему, дает мне ошибку, он имел перед исправлением , Я работал над этим на прошлой неделе. но я никогда не слышал об XSL до этого. Может ли кто-нибудь увидеть, может быть, что с этим не так?
Но вот строка в XML-файле:
<ImageElement Name="Actor1" X="980" Y="44" Width="93" Height="123" Source="File" Offset="0" MultiPageIndex="-1" SourceData="" NullImageUrl="%PATH%\..\Common\cast\NoPhotoAvailable.jpg" />
Ok Я обновил файл XSL To:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="pathvalue" select="//tokens/token[@name='%PATH%']"/>
<xsl:variable name="folderactors" select="string('\..\Common\cast\')"/>
<xsl:variable name="actorsext" select="string('.jpg')"/>
<xsl:variable name="actorstext" select="string('')"/>
<xsl:variable name="lista1" select="//tokens/token[@name='%ACTORS%']"/>
<xsl:variable name="actor1" select="substring-before($lista1, ',')" />
<xsl:variable name="resto1" select="substring-after($lista1, ',')" />
<xsl:variable name="lista2" select="$resto1"/>
<xsl:variable name="actor2" select="substring-before($lista2, ',')" />
<xsl:template match="ImageElement[@Name='Actor1']">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:choose>
<xsl:when test="$actor1 != '' ">
<xsl:attribute name="SourceData">
<xsl:value-of select="concat($pathvalue,$folderactors,$actor1,$actorsext)"/>
</xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
А теперь я получаю сообщение об ошибке:
1: 2014-11-17 09:18:00.1842 [RenderMoviesheet] Entering rendermoviesheet
1: 2014-11-17 09:18:00.1842 [RenderMoviesheet] Needs render
1: 2014-11-17 09:18:00.1842 [RenderMoviesheet] Start analyze template
1: 2014-11-17 09:18:00.5332 [RenderMoviesheet] End analyze template
1: 2014-11-17 09:18:01.2673 [RenderMoviesheet] Rendering using Clear Showcase;
thumbmode=True; done in 732.0419ms; file= filename.avi
1: 2014-11-17 09:18:01.2673 [RenderMoviesheet] Saving small preview
1: 2014-11-17 09:18:01.2733 [CreateThumbnailImage] Resizing C:\Users\Dev\AppData\Local\Temp\_thumbgen_tmp\171b3083-e6b7-4ec9-9ea2-1b54b8a8c14d.jpg to C:\Users\Dev\AppData\Local\Temp\_thumbgen_tmp\633c815b-afe3-432c-ba27-a7fb90c43f7f.jpg
1: 2014-11-17 09:18:01.3173 [RenderMoviesheet] Small preview saved
1: 2014-11-17 09:18:03.3764 [RenderMoviesheet] Entering rendermoviesheet
1: 2014-11-17 09:18:03.3774 [RenderMoviesheet] Needs render
1: 2014-11-17 09:18:03.3774 [RenderMoviesheet] Start analyze template
1: 2014-11-17 09:18:03.7614 [RenderMoviesheet] End analyze template
1: 2014-11-17 09:18:03.7614 [RenderMoviesheet] XSL Found
1: 2014-11-17 09:18:03.8174 [RenderMoviesheet] XSL Processed
1: 2014-11-17 09:18:03.8174 [RenderMoviesheet] Exception loading template:Invalid XML data for restoring ImageDraw object.
<?xml version="1.0" encoding="utf-8"?>
<ImageElement Name="" X="" Y="" Width="" Height="" Source="" Offset="" MultiPageIndex="" NullImageUrl="" SourceData="C:\Users\Dev\Desktop\ThumGen\Templates\Clemery's Ultimate MOVIE SHEET\..\Common\cast\Nicole Kidman.jpg" />
1: 2014-11-17 09:18:03.8174 [RenderMoviesheet] render System.Exception: Invalid XML data for restoring ImageDraw object.
at ThumbGen.MovieSheets.MovieSheetsGenerator.RenderMoviesheet(Boolean getThumbnail)
Thank you. -dev
Пожалуйста, разместите достаточно кода (XML + XSLT), который позволит нам воспроизвести проблему. –
- это все код XSL. Я могу опубликовать полный XML-файл. но поскольку это шаблон для ThumGen, я бы предположил, что без ThumGen вы не сможете воспроизвести его. – Dev