我有一个变量varLocationRegion,我已经存储了整个xml(其中有两个元素位置和区域。现在我想通过匹配位置来获取区域的值来循环遍历xslt中的变量。请指教。谢谢!
<?xml version='1.0' encoding='UTF-8'?>
<wd:Report_Data xmlns:wd="urn:com.workday/bsvc">
<wd:Report_Entry>
<wd:Location_ID>111</wd:Location_ID>
<wd:Region_Ref_ID>UNITED_STATES_REGION</wd:Region_Ref_ID>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:Location_ID>111V</wd:Location_ID>
</wd:Report_Entry>
</wd:Report_Data>
答案 0 :(得分:0)
根据您提供的信息,您可以尝试以下方法: 可以通过以下方式尝试XSLT 1.0的解决方案: 使用Muenchian Grouping将xml中的唯一Location_ID和原始xml上的迭代组合在一起,使用已经可用的唯一Location_ID查找关联的Region_Ref_ID列表到特定的Location_ID。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wd="urn:com.workday/bsvc">
<xsl:output method="text"/>
<xsl:key name="uniqueLocation" match="wd:Report_Entry" use="wd:Location_ID"/>
<xsl:template match="/">
<!--variable called data is the variable that contains your xml-->
<xsl:variable name="uniqueLocationData" select="$data/wd:Report_Data/wd:Report_Entry[count(.|key('uniqueLocation',wd:Location_ID)[1])=1]"/>
<xsl:for-each select="$data/wd:Report_Data/wd:Report_Entry/wd:Region_Ref_ID[$data/wd:Report_Data/wd:Report_Entry/wd:Location_ID=$uniqueLocationData/wd:Location_ID]">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>