Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 如何使用xsl样式表参数在XPATH表达式中设置节点名称?_Xslt_Xpath - Fatal编程技术网

Xslt 如何使用xsl样式表参数在XPATH表达式中设置节点名称?

Xslt 如何使用xsl样式表参数在XPATH表达式中设置节点名称?,xslt,xpath,Xslt,Xpath,我有以下XPATH表达式: select="catalog/product/$category_name = $category_value" 在给定的示例中,$category_name和$category_value是我从servlet接收到的XSL参数,我希望在XSL中使用它们根据类别及其值过滤XML结果。但是,由于某种原因,例如,$category_name参数等于'product'父节点的'price'属性,$category_值等于40,给定的表达式根本不返回任何结果!从逻辑上讲,

我有以下XPATH表达式:

select="catalog/product/$category_name = $category_value"

在给定的示例中,$category_name和$category_value是我从servlet接收到的XSL参数,我希望在XSL中使用它们根据类别及其值过滤XML结果。但是,由于某种原因,例如,$category_name参数等于'product'父节点的'price'属性,$category_值等于40,给定的表达式根本不返回任何结果!从逻辑上讲,应该将表达式转换为select=“catalog/product/price=40”……我想在我的例子中,指定节点名(即类别)可能有问题。有人能提出解决这个问题的方法吗?

对于可变xpath表达式,请使用动态xpath。请参见您可能想要的

catalog/product/*[name()=$category_name] [. = $category_value]