xns 파일에 네임 스페이스 'tns'가 있습니다. 어디서나 'tns'를 사용하지 않고 xslt를 사용하려고하지만, 대신 한 번 선언 된 tns 네임 스페이스와 일치하는 템플릿을 사용하십시오. 루트 tns : cv (xml)을 my root cv (xsl)과 일치시키고 싶습니다. xslt가 XML 요소를 표시하지만 내용은 표시하지 않으므로 xslt가 잘못되었습니다.XML XSLT namespace
<?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>
답장을 보내 주셔서 감사합니다 : –