0
조회를 위해 사용할 XML 문서를 동적으로 결정하는 방법을 찾고 있습니다. 필자는 입력 XML 문서를 파싱하고 그 값에 기반하여 적절한 룩업 문서를 사용하고자한다. 이상적으로는 $ LookupDoc을 올바른 문서로 설정하여 읽을 수 있습니다. 아래에있는 코드 스 니펫이 작동하지 않습니다. XSLT 3.0으로 전환하면 쉽게 사용할 수 있습니다. 당신은라는 변수의 사용을 표시하지 않은동적 문서 조회
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="table-lookup" match="Row" use="@Key1"/>
<xsl:variable name="LookupLTE" select="document('HuaweiLTE.xml')/Huawei"/>
<xsl:variable name="LookupHSPA" select="document('HuaweiHSPA.xml')/Huawei"/>
<xsl:template match="measCollecFile/measData">
<xsl:variable name="DeviceName" select="@userLabel"/>
<xsl:choose>
<xsl:when test="substring($DeviceName,1,1)='L'">
<xsl:variable name="LookupDoc" select="$LookupLTE"/>
</xsl:when>
<xsl:when test="substring($DeviceName,1,1)='H'">
<xsl:variable name="LookupDoc" select="$LookupHSPA"/>
</xsl:when>
</xsl:choose>
<root>
<xsl:for-each select="measInfo">
<xsl:call-template name="loop"> </xsl:call-template>
</xsl:for-each>
</root>
</xsl:template>
미안하지만 도움이 될 것 같습니다. – user1854326
내가 제안한 것을 시도해보십시오 (현재'xsl : chooose' 대신에). 그것이 작동하지 않는다면 질문을 편집하고' '그 템플릿이'match = "measCollecFile/measData"'또는 다른 템플릿에서 발생하는지 확실하지 않기 때문입니다. –
제공 한 if 예제가 매력처럼 작동했습니다. 감사합니다. – user1854326