适用于iTunes导入程序的XSLT

时间:2015-04-28 12:44:54

标签: xslt

我需要将给定的XML转换为另一种格式。这是来源:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://apple.com/itunes/importer" version="film5.1">
  <provider>Provider</provider>
  <language>de-DE</language>
  <video>
    <type>film</type>
    <subtype>feature</subtype>
    <vendor_id>some_id</vendor_id>
    <country>US</country>
    <original_spoken_locale>en</original_spoken_locale>
    <title>Some movie title</title>
  </video>
</package>

这是我试过的XSLT:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:importer="http://apple.com/itunes/importer" version="1.0">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

 <xsl:template match="importer:package">

    <xsl:variable name="var-title">
        <xsl:apply-templates select="video/title"/>
    </xsl:variable>

<Movie>
    <Title><xsl:value-of select="$var-title"/></Title>

</Movie>          

</xsl:template>    
</xsl:stylesheet>

但未选择源XML中的<title>。我做错了什么?

1 个答案:

答案 0 :(得分:1)

命名空间也适用于后代,因此将<xsl:apply-templates select="video/title"/>更改为<xsl:apply-templates select="importer:video/importer:title"/>以使用前缀。