我需要将给定的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>
。我做错了什么?
答案 0 :(得分:1)
命名空间也适用于后代,因此将<xsl:apply-templates select="video/title"/>
更改为<xsl:apply-templates select="importer:video/importer:title"/>
以使用前缀。