当前位置: 首页 > 知识库问答 >
问题:

具有基于配置文件的 XPath 查询的 XSLT

轩辕季同
2023-03-14

我试图编写一个μn XSLT(1.0版)转换器,将输入的xml文件转换成另一种格式,运行一些用xml文件编写的xpath查询。Xpath查询根据从inptu文件中检索的系统和类型变量而变化。我做到了:

<xsl:variable name="system" select="some path in input xml" />
<xsl:variable name="type" select="some path in input xml" />

计算系统和类型后,我能够检索我的查询 xpath,如下所示:

<xsl:variable name="metadata_mapping" select="some path in config xml based on system and type" />

如果我打印,一切看起来都不错:

<info>
        <system>
            <xsl:value-of select="$system" />
        </system>
        <type>
            <xsl:value-of select="$type" />
        </type>
            metadata-mapping:
            <xsl:value-of select="$metadata_mapping" />
        </info>

当我尝试将$metadata_mapping作为xpath查询计算时:

<xsl:value-of select="${metadata_mapping}" />

我得到以下错误:

17:19:44,508 ERROR[main]JAXPSAXProcessorInvoker-org . Apache . XML . utils . wrappedruntime exception:impossible tro ware la variable con il nome { metadata _ mapping } javax . XML . transformer exception:org . Apache . XML . utils . wrappedruntime exception:impossible tro ware la variable con il nome { metadata _ mapping } at org . Apache . Xalan . processor . transformer factory impl . new templates(transformer

org . Apache . XML . utils . wrappedruntimeexception:impossible troware la variable con il nome { metadata _ mapping } at org . Apache . XPath . operations . variable . fixup variables(variable . Java:148)at org . Apache . XPath . axes . filterexprwalker . fixup variables(filterexprwalker . Java:240)at org . Apache . XPath . axes . walking iterator . fixup variables(walking iterator . Java:294)at org . Apache . XPath

共有1个答案

孟智志
2023-03-14

您希望${metadata_mapping}做什么,为什么希望它“将$metadata_mapping作为xpath查询求值”?如果您使用Xalan,那么您可以支持http://xalan.apache.org/old/xalan-j/extensionslib.html#evaluate,这是一个扩展函数,用于将表达式计算为XPath。在Saxon 9支持的XSLT 3中,有<code>xsl:evaluate</code>(https://www.w3.org/TR/xslt/#dynamic-xpath)。

 类似资料:
  • 我有一个如下的房间模式: 它包含一个事件ID数组。事件架构: 我试过这样的东西: 但它当然不起作用(房间总是空数组)。我真的很难弄清楚。 如何查询具有基于子文档(事件)的条件的文档(房间)?

  • 我正在尝试解析下面的xml以根据某些条件获取ScId元素值。此条件在xpath字符串中提及,然后在xpath Next字符串中选择ScId值。 我使用VTD xml解析器使用嵌套的xpath查询来获取ScId值,该值以RC开头,类型=Daycare。 下面是代码 解析逻辑是 这是我的回报 解析值为SC101-91-new 虽然我期待它是 解析值为RC101-92-新

  • 本文向大家介绍基于python的ini配置文件操作工具类,包括了基于python的ini配置文件操作工具类的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python的ini配置文件操作工具类的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我想在maven构建期间更改不同属性的值。Maven根据配置文件更改文件中的值,我也尝试了很多其他方法,但它从来都不起作用,我不明白为什么... 这是我的pom.xml 我有一个基于maven的项目,下面是src/main/resources下名为front-config.properties的文件:

  • 问题内容: 在node.js中,我可以列出具有通配符匹配的文件吗? 在fs文档中找不到通配符匹配的信息。 问题答案: Node核心未涵盖此范围。您可以检查该模块的内容。npmjs.org还是查找各种模块的绝佳资源。 用法