xml - 使用 xsl 模板参数作为选择中的节点(即元素的值)

标签 xml xslt xpath xslt-1.0

假设您有一个 xml 文件:

<dictionary>
    <row>
        <table>log</table>
        <entity>Log</entity>
    </row>

    <row>
        <table>mail_macros</table>
        <entity>MailMacro</entity>
    </row>
</dictionary>

并且您想编写一个通用模板来从行中获取一个元素:

<xsl:template name="row">
    <xsl:param name="pElement" />
    <xsl:value-of select="./dictionary/row/$pElement />
</xsl:template>

因此,当我调用模板并将 pElement 设置为字符串“table”时,它会返回表值等。

是否可以在 xslt 1.0 中编写这样的表达式?因为这个不起作用。

最佳答案

XPATH 表达式不是那样工作的。你需要....

 <xsl:value-of select="./dictionary/row/*[local-name()=$pElement] />

警告

假设您没有使用命名空间。如果不是,请告诉我们。

关于xml - 使用 xsl 模板参数作为选择中的节点(即元素的值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654692/

相关文章:

xslt - 在根元素上声明所有命名空间

xslt - xsl :if at least one child node exists

xslt - 将一组行保留在一个页面上,而不将其超出页面限制

xml - 搜索XML以字符开头的属性

java - 在哪里可以找到处理目录文件的 jaxb gradle 插件或自定义任务?

xml - 如何使用 XML API 获取 Jenkins 作业列表

c# - 修改 XML 模式时如何管理 ItemChoiceType 枚举的更改?

xml - 如何使用 XQuery 将元素插入到当前的 XML 文档中?

xpath - 如何在 HTML <br> 标记之间拆分 HTML/XML 文本?

xml - 是否有替代方法来控制基于另一组节点的一组节点的 XSLT 输出?