我目前正在尝试编写一个XSLT,我可以使用我之前使用原始XML中的值定义的变量
我的XSLT示例:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:content="urn:cablelabs:md:xsd:content:3.0"
xmlns:offer="urn:cablelabs:md:xsd:offer:3.0"
xmlns:title="urn:cablelabs:md:xsd:title:3.0"
xmlns="urn:cablelabs:md:xsd:core:3.0"
xsi:schemaLocation="urn:cablelabs:md:xsd:core:3.0 MD-SP-CORE-I02.xsd urn:cablelabs:md:xsd:offer:3.0"
version="1.0" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" media-type="text/xml" indent="yes"/>
<xsl:output method ="xml" doctype-system="ADI.DTD"/>
<xsl:strip-space elements="*"/>
<!-- Define Variables -->
<!-- uriID = ProviderID/AssetDiscriminator/AssetId -->
<xsl:variable name="uriIdProvider" select="'indemand.com'"/>
<xsl:variable name="episodeTitle" select="'//PACKAGEDETAILS/VERSION_SERIES_TITLE'"/>
<!-- Build output Xml in CableLabs Format-->
<xsl:template match="/">
<ADI3>
<xsl:copy-of select="document('')/*/@xsi:schemaLocation"/>
<xsl:comment> Assets for the Series </xsl:comment>
<Asset
uriId="{$uriIdProvider}/Title/"
xsi:type="title:TitleType">
<xsl:element name="title:TitleBrief">
<xsl:value-of select="{$episodeTitle}"/>
</xsl:element>
</Asset>
</ADI3>
</xsl:template>
</xsl:stylesheet>
我的问题在于我最终要尝试定义xsl:element标题:TitleBrief以及之前声明的变量episodeTitle。
我希望我的输出看起来像是:
<Asset uriId="indemand.com/Title/" xsi:type="title:TitleType">
<title:TitleBrief>Haunting, A (S8)</title:TitleBrief>
</Asset>
有人可以帮我弄清楚我哪里出错吗?
答案 0 :(得分:0)
而不是:
<xsl:value-of select="{$episodeTitle}"/>
使用:
<xsl:value-of select="$episodeTitle"/>
(我猜)而不是:
<xsl:variable name="episodeTitle" select="'//PACKAGEDETAILS/VERSION_SERIES_TITLE'"/>
使用:
<xsl:variable name="episodeTitle" select="//PACKAGEDETAILS/VERSION_SERIES_TITLE"/>