【发布时间】:2014-11-17 14:44:04
【问题描述】:
我正在使用 ThumbGen 生成电影表。对于我的数字电影。它使用 XSL。我的想法是让“演员”从一个文件夹中加载图片,里面有他们的照片。我在网上搜索,其他人对如何解决同样的问题有疑问。所以我以此为基础,但无法让它发挥作用。
我收到错误: “在添加了文本、注释、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" />
好的,我已将 XSL 文件更新为:
<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)
谢谢。 -开发
【问题讨论】:
-
请发布足够的代码 (XML+XSLT) 以便我们重现问题。
-
这就是所有的 XSL 代码。我可以发布完整的 XML 文件。但由于它是 ThumGen 的模板,我假设没有 ThumGen,您将无法复制它。
标签: xml xslt xml-parsing xslt-1.0