Reputation: 511
Thanks in advance for your support. I am facing xpath query issue while trying to fetch a value based on number range.
Let me explain
I have the following configuration in a xml file 'daily_bundles_mapping.xml'
<DAILY_BUNDLE_MAPPING_LIST>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>1 </SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>1.49</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143001</UT_ID> /DAILY_BUNDLE_MAPPING_INFO>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>1.50</SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>1.99</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143003</UT_ID> /DAILY_BUNDLE_MAPPING_INFO>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>2.00</SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>2.49</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143005</UT_ID> </DAILY_BUNDLE_MAPPING_INFO>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>2.50</SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>2.99</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143006</UT_ID> </DAILY_BUNDLE_MAPPING_INFO>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>3.00</SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>3.49</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143007</UT_ID> </DAILY_BUNDLE_MAPPING_INFO>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>3.50</SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>3.99</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143008</UT_ID> </DAILY_BUNDLE_MAPPING_INFO>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>4.00</SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>4.49</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143009</UT_ID> </DAILY_BUNDLE_MAPPING_INFO>
<DAILY_BUNDLE_MAPPING_INFO> <SPEND_LIMIT_1_MIN>4.50</SPEND_LIMIT_1_MIN> <SPEND_LIMIT_1_MAX>4.99</SPEND_LIMIT_1_MAX> <UC_ID>143</UC_ID> <UT_ID>143010</UT_ID> </DAILY_BUNDLE_MAPPING_INFO>
</DAILY_BUNDLE_MAPPING_LIST>
The following two lines will read the 'daily_bundles_mapping.xml' file
<xsl:variable name="dailyBundleMappingFile" select="'daily_bundles_mapping.xml'"/>
<xsl:variable name="docDailyBundleMappingFile" select="document($dailyBundleMappingFile)"/>
For a given spend_limit_value, the xslt query is not retrieving the UT_ID value
<xsl:variable name="GET_UC_ID_1_VALUE" value="1.23"/>
<xsl:variable name="UT_ID" select="$docDailyBundleMappingFile/DAILY_BUNDLE_MAPPING_LIST/DAILY_BUNDLE_MAPPING_INFO[min(../DAILY_BUNDLE_MAPPING_INFO/SPEND_LIMIT_1_MIN/text()) >= $GET_UC_ID_1_VALUE and max(../DAILY_BUNDLE_MAPPING_INFO/SPEND_LIMIT_1_MAX) <= $GET_UC_ID_1_VALUE and UC_ID = 143]/UT_ID/text()"/>
Please help/suggest.
What I was looking for, based on 'GET_UC_ID_1_VALUE', the number range need to be identified between the xml elements SPEND_LIMIT_1_MIN & SPEND_LIMIT_1_MAX with given UC_ID and UT_ID value need to fetched.
Upvotes: 0
Views: 21
Reputation: 167706
It looks to me as if you simply want to select
$docDailyBundleMappingFile/DAILY_BUNDLE_MAPPING_LIST/DAILY_BUNDLE_MAPPING_INFO[SPEND_LIMIT_1_MIN <= $GET_UC_ID_1_VALUE and $GET_UC_ID_1_VALUE <= SPEND_LIMIT_1_MAX and UC_ID = 143]/UT_ID
Upvotes: 1