我有一个名称空间为“tns”的 xml 文件。我想使用 xslt 而不在任何地方使用“tns”,而是使用匹配的模板,而不是声明一次 tns 命名空间并使用该模板。我想将根 tns:cv (xml) 与我的根 cv (xsl) 匹配 我的 xslt 有什么问题,因为它显示 xml 元素,但不显示其中的内容?
<?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>