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」'或不同的模板中。 –
你提供的例子像一個魅力工作,謝謝。 – user1854326