使用thumbgen的xsl和xml [英] xsl and xml with thumbgen

查看:69
本文介绍了使用thumbgen的xsl和xml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对xml或xsl表的了解很少。我一直在尝试一个名为Thumbgen的程序来生成带有演员照片的电影图形。 Thumbgen"刮掉"电影数据,然后可以通过样式表和/或
xml文档进行操作。第一部分是样式表的一部分,其中演员姓名是从由"/"分隔的名称字符串中提取的。符号





 < xsl:variable name =" actorsext" select =" string('。jpg')" />

  < xsl:variable name =" actorstext" select =" string('')" />

  < xsl:variable name =" lista1"选择= QUOT; //令牌/令牌[@name ="%ACTORS%"]" />


  < xsl:variable name =" actor1" select =" substring-before($ lista1,'/')" />  

  < xsl:variable name =" resto1" select =" substring-after($ lista1,'/')" />

  < xsl:variable name =" lista2"选择= QUOT; $ resto1" />

  < xsl:variable name =" actor2" select =" substring-before($ lista2,'/')" />  
$


第二位在样式表的下方,其中与演员姓名相关的演员图像位于一个充满jpg的文件夹中。 $ b $




 < xsl:template match =" ImageElement [@ Name ='Actor1']">

   &NBSP;&NBSP;&NBSP;  < xsl:copy>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < xsl:apply-templates select =" @ * | node()" />

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < xsl:choose>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < xsl:when test =" $ actor1!=''">

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < xsl:attribute name =" SourceData">< xsl:value-of select =" concat($ pathvalue,$ folderactors,$ actor1,$ actorsext)" />< / xsl:属性>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < / xsl:when>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < / xsl:选择>

   &NBSP;&NBSP;&NBSP;  < / xsl:copy>

    < / xsl:template>
$


$
这是xml表格的一小部分,其中演员jpg被"放置"更大的jpg(1280 x 720)

$


      < ImageElement Name =" Actor1" X =" 980" Y =" 44"宽度= QUOT; 93"高度= QUOT; 123"源= QUOT;文件"偏移量=" 0" MultiPageIndex = QUOT; -1" SourceData = QUOT;" NullImageUrl ="%PATH%\..\Common \cast \ NoPhotoAvailable.jpg">



 < Actions>

          <旋转角度="3" InterpolationMode = QUOT; HighQualityBicubic" />
$
        < / Actions>
$


除非我添加最后一位 - 旋转角度动作,否则一切正常。当我这样做时,它会产生一条错误消息:


"在text,comment,pi或子元素节点已经存在之后,属性和命名空间节点不能添加到父元素已被添加。"有没有解决这个问题的方法?

I have very little knowledge of xml or xsl sheets. I have been experimenting with a program called Thumbgen to generate movie graphics with pictures of actors. The movie data is 'scraped' by Thumbgen and can then be manipulated by a style sheet and/or an xml document. This first section is a bit of the style sheet where actors names areextracted from a string of names separated by "/" symbols


 <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, '/')" />  

This second bit is further down the style sheet where the actor image related to the actor name is found in a folder full of jpg's



 <xsl:template match="ImageElement[@Name='Actor1']">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
            <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:copy>
    </xsl:template>


This is a small bit of the xml sheet where the actor jpg is 'placed' in a larger jpg (1280 x 720)


      <ImageElement Name="Actor1" X="980" Y="44" Width="93" Height="123" Source="File" Offset="0" MultiPageIndex="-1" SourceData="" NullImageUrl="%PATH%\..\Common\cast\NoPhotoAvailable.jpg">

 <Actions>
          <Rotate Angle="3" InterpolationMode="HighQualityBicubic" />
        </Actions>

Everything works fine except if I add the last bit - the rotate angle action. When I do that it produces an error message:
"Attribute and namespace nodes cannot be added to the parent element after a text, comment, pi, or sub-element node has already been added." Is there any way around this problem?

推荐答案

我想你只想改变一些代码的顺序,即改变

I think you simply want to change the order of some of your code i.e. change

<xsl:template match="ImageElement[@Name='Actor1']">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
            <xsl:choose>
                <xsl:when test="


actor1!=''">
< xsl:attribute name =" SourceData">< xsl:value-of select =" concat(
actor1 != '' "> <xsl:attribute name="SourceData"><xsl:value-of select="concat(


pathvalue,
pathvalue,


这篇关于使用thumbgen的xsl和xml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆