名前空間「tns」の xml ファイルを取得しました。どこでも「tns」を使用せずにxsltを使用したいのですが、代わりにtns名前空間が一度宣言された一致するテンプレートを使用し、それを使用します。ルート tns:cv (xml) を自分のルート cv (xsl) に一致させたいのですが、xslt には何が問題なのですか?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="multiLanguageToSingle.xslt"?>
<tns:cv xmlns:tns="http://www.i8c.be/CvService/1.0">
<tns:generalLanguage>nl</tns:generalLanguage>
<tns:careerPath>
<tns:current>
<tns:company language="nl">
<tns:companyName></tns:companyName>
<tns:description></tns:description>
</tns:company>
</tns:current>
<tns:former>
<tns:company language="nl">
<tns:companyName></tns:companyName>
<tns:description></tns:description>
</tns:company>
</tns:former>
</tns:careerPath>
<tns:companyDetails>
<tns:address>
上記の xml (最初の数行) に xsl を使用したい:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tns="http://www.i8c.be/CvService/1.0">
<xsl:output method="xml" omit-xml-declaration="no" indent="yes" />
<xsl:template match="/">
<xsl:apply-templates select="/tns:cv" />
</xsl:template>
<xsl:template match="/tns:cv">
<cv xsi:schemaLocation="http://www.i8c.be/CvService/1.0 cvDataTemplate.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:variable name="language" select='"nl"'/>
<careerPath>
<current>
<xsl:for-each select="cv/careerPath/current/company[@language=$language]">
<companyName><xsl:value-of select="companyName"/></companyName>
<description><xsl:value-of select="description"/></description>
</xsl:for-each>
</current>
<former>
<xsl:for-each select="cv/careerPath/former/company[@language=$language]">
<companyName><xsl:value-of select="companyName"/></companyName>
<description><xsl:value-of select="description"/></description>
</xsl:for-each>
</former>
</careerPath>