小编Faw*_*wix的帖子

带动态QName的XSLT调用模板?

我四处寻找找到问题的解决方案,但我还有更多问题......

考虑以下XML:

<dynamicStuff>
      <dyn id="name1">...</dyn>
      <dyn id="name2">...</dyn>
      <dyn id="name3">...</dyn>
      <dyn id="name4">...</dyn> 
</dynamicStuff>
Run Code Online (Sandbox Code Playgroud)

并假设我有一个XSLT文件,如下所示:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

     <xsl:template name="name1">    
         ...
     </xsl:template>

     <xsl:template name="name2">    
         ...
     </xsl:template>

     <xsl:template name="name3">    
         ...
     </xsl:template>

     <xsl:template name="name4">    
         ...
     </xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

我想要做的是从SECOND XSLT文件动态确定要调用哪个模板,如下所示:

<xsl:variable name="templateName">
     <xsl:value-of select="dyn/@id"/>
</xsl:variable>

<xsl:call-template name="$templateName"/>
Run Code Online (Sandbox Code Playgroud)

可悲的是它不起作用,相信我,当我说我尝试了很多不同的东西,虽然它听起来很简单,它也不起作用......

我错过了什么吗?

编辑:

我已成功完成以下操作:

<xsl:template name="staticName">
    <xsl:param name="id" />

    <xsl:if test="$id = 'name1'">....</xsl:if>
    <xsl:if test="$id = 'name2'">....</xsl:if>
    ...
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

以这种方式打电话:

<xsl:call-template name="staticName">
     <xsl:with-param name="id" select="@id"/>
</xsl:call-template>
Run Code Online (Sandbox Code Playgroud)

针说这有多么不方便......首先我的代码将被绑定到那个staticName(想象一下我需要在十几个文件中调用这个函数)...其次我会在里面有一堆(un)相关的内容相同的模板,当它可能更加分离...一个噩梦升级系统uu

它做我想要的但不是我需要的方式......

提前感谢您对此事的任何启示!

xml xslt

6
推荐指数
1
解决办法
8108
查看次数

弹出CD托盘的批处理命令行?

我正在尝试将我的CD备份移动到我的备份硬盘.

要自动完成任务,我正在尝试创建批处理以使用CD标签复制文件,而不是弹出介质.

到目前为止代码看起来像这样:

@echo off 
SET dest=F:\Backup\

d:

:: routine to retrieve volume label.
for /f "tokens=1-5*" %%1 in ('vol') do (
   set vol=%%6 & goto done
)
:done

:: create destination folder
set dest=%dest%%vol%
mkdir "%dest%"

:: copy to destiny folder
xcopy "d:" "%dest%" /i /s /exclude:c:\excludes.txt

::eject CD



c:
Run Code Online (Sandbox Code Playgroud)

我被困在弹射部分.我正在尝试弹出CD,因为当复制完成时我想要一条清晰的线来引起我的注意(我想打开托盘是一个好的).

任何想法如何使用批处理?或任何其他方式"引起注意"到复制事件的结束?

谢谢 :)

windows backup cmd batch-file

5
推荐指数
2
解决办法
4万
查看次数

标签 统计

backup ×1

batch-file ×1

cmd ×1

windows ×1

xml ×1

xslt ×1