를 기반으로 내부에 다른 템플릿을 템플릿을 적용, 나는 Test_resuts 및 구성 요소을 통해 루프에 있습니다. 구성 요소의 TYPE이 암시 적 이름과 일치하면 해당 구성 요소에 다른 템플리트를 적용해야합니다. 각 구성 요소 유형에 대해 다른 템플리트로 XSL을 생성했습니다. 예 : NORMALTEXTBOX. 그러나 템플릿은 컴포넌트 블록 ...에 적용되지 않습니다. 아무도 나를 도와 줄 수 없습니까?XSLT가 나는 아래 XML이 특성
XML
<Report>
<Test_Results>
<Test_Result TestID="1" TestName="sampleTest" >
<Component Type="NORMALTEXTBOX">
<ComponentName>Component1</ComponentName>
<ComponentId></ComponentId>
<Method></Method>
<Results></Results>
</Component>
<Component Type="NUMERICTEXTBOX">
<ComponentName>Component2</ComponentName>
<ComponentId></ComponentId>
<Method></Method>
<Results></Results>
</Component>
</Test_Result>
<Test_Result TestID="1" TestName="">
<Component Type="NORMALTEXTBOX">
<ComponentName></ComponentName>
<ComponentId></ComponentId>
<Method></Method>
<Results></Results>
</Component>
</Test_Result>
</Test_Results>
</Report>
XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates select="Report/Test_Results"/>
</body>
</html>
</xsl:template>
<xsl:template match="Test_Results">
<xsl:for-each select="Test_Result">
<xsl:for-each select="Component">
<xsl:choose>
<xsl:when test="@Type = 'NORMALTEXTBOX'">
<xsl:apply-templates select="Component" mode="normaltext"/>
</xsl:when>
<xsl:when test="@Type = 'NUMERICTEXTBOX'">
<xsl:apply-templates select="Component" mode="numerictext"/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template match="Component" mode="normaltext">
<h1> different styles to be applied, only some values of component will be taken</h1>
</xsl:template>
<xsl:template match="Component" mode="numerictext">
<h1>different styles to be applied, only some values of component will be taken</h1>
</xsl:template>
</xsl:stylesheet>
귀하의 도움에 감사드립니다.을 시도했을 때 작동하기 시작했습니다. 나는 당신이 제공 한 솔루션으로 시도 할 것입니다. 감사 :) –
Thavudu