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
基于第一个XML元素/属性调用辅助XML的XSLT_Xslt_Xpath - Fatal编程技术网

基于第一个XML元素/属性调用辅助XML的XSLT

基于第一个XML元素/属性调用辅助XML的XSLT,xslt,xpath,Xslt,Xpath,喜欢这些东西-这里的菜鸟 我有一个XSLT1.0文件,它拉入一个辅助XML(到一个变量)来构建一个表 然后,我从变量中获取所需的值,例如: 我想做的是让第一个XML触发器/引导到哪里查找表数据。 我希望我可以在触发的XML中声明xpath的最后一部分“channel_1”或“channel_2”, 但显然我不能像那样动态创建xpath 拜托-我能做什么 我想做的是让第一个XML触发器/引导器指向何处 对于表数据。我希望我可以在触发的XML中声明 xpath的最后一部分是“channel_

喜欢这些东西-这里的菜鸟

我有一个XSLT1.0文件,它拉入一个辅助XML(到一个变量)来构建一个表

然后,我从变量中获取所需的值,例如:

我想做的是让第一个XML触发器/引导到哪里查找表数据。 我希望我可以在触发的XML中声明xpath的最后一部分“channel_1”或“channel_2”,
但显然我不能像那样动态创建xpath

拜托-我能做什么

我想做的是让第一个XML触发器/引导器指向何处 对于表数据。我希望我可以在触发的XML中声明 xpath的最后一部分是“channel_1”或“channel_2”,
但是 显然,我不能像那样动态创建xpath

拜托-我能做什么

这可以很容易地完成,只需扩展您已有的代码

更改此设置

<xsl:variable name="table_values" select=
"document('./table_variants/external_table.xml')/xml/channel_1"/>
    <xsl:variable name="table_values" select=
        "document('./table_variants/external_table.xml')
                           /xml/*[name() = $channelName"/>

对此

<xsl:variable name="table_values" select=
"document('./table_variants/external_table.xml')/xml/channel_1"/>
    <xsl:variable name="table_values" select=
        "document('./table_variants/external_table.xml')
                           /xml/*[name() = $channelName"/>


不用说,变量(或全局、外部参数)
$channelName
的值应该是XPath表达式的最后一个位置步骤中要使用的元素的(字符串)名称。

调用xml是什么意思?你想要一个基于一些.xml值的动态xpath吗?是的,(我相信)这就是我想要的。那么第二个文件是否只是一个模糊的问题呢?难道你不能考虑所有的可能性,使用或特定于你所有的需求吗?您甚至可以根据您的条件调用特定的命名模板。抱歉,我不认为我可以-在示例中,可能会有新的“通道”添加到表中(以及带有值的xml),但xslt是静态的。请发布您的.xml文件(其中的一小部分)所以我们可以理解你想要做什么。太棒了-谢谢你&谢谢你给其他帮助过我的人发的所有帖子-我想知道多久之前我碰到了伟大的迪米特先生本人;-)