根据配置的数值范围获取xml节点值时XSLT查询问题

根据配置的数值范围获取xml节点值时XSLT查询问题,xslt,xslt-2.0,Xslt,Xslt 2.0,提前感谢您的支持。我在尝试根据数字范围获取值时遇到xpath查询问题 让我解释一下 我在xml文件“daily\u bundles\u 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</SPEN

提前感谢您的支持。我在尝试根据数字范围获取值时遇到xpath查询问题

让我解释一下

我在xml文件“daily\u bundles\u 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>

1 1.49 143143001/每日\捆绑\映射\信息>
1.50 1.99 143143003/每日\u捆绑\u映射\u信息>
2.00 2.49 143  143005 
2.50 2.99 143  143006 
3.00 3.49 143  143007 
3.50 3.99 143  143008 
4.00 4.49 143  143009 
4.50 4.99 143  143010 
以下两行将读取“daily\u bundles\u mapping.xml”文件

<xsl:variable name="dailyBundleMappingFile" select="'daily_bundles_mapping.xml'"/>

<xsl:variable name="docDailyBundleMappingFile" select="document($dailyBundleMappingFile)"/>

对于给定的支出限制值,xslt查询不会检索UT ID值

<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) &lt;= $GET_UC_ID_1_VALUE and UC_ID = 143]/UT_ID/text()"/>

请帮忙/建议


我所寻找的是,基于“GET_UC_ID_1_值”,需要在给定UC_ID和UT_ID值的xml元素SPEND_LIMIT_1_MIN和SPEND_LIMIT_1_MAX之间标识数字范围。在我看来,似乎您只是想选择

$docDailyBundleMappingFile/DAILY_BUNDLE_MAPPING_LIST/DAILY_BUNDLE_MAPPING_INFO[SPEND_LIMIT_1_MIN &lt;= $GET_UC_ID_1_VALUE and $GET_UC_ID_1_VALUE &lt;= SPEND_LIMIT_1_MAX and UC_ID = 143]/UT_ID

因此,如果该变量值为
1.23
,您希望选择输入XML的哪个元素?简单地说,第一种情况下,最小限制
1
小于
1.23
,最大限制
1.49
大于?因为1.23在1和1.49的范围内,所以需要选择UT_ID值143001。很抱歉没有把这个问题提出来。