我如何使用xslt将变量名称空间添加到元素

标记

我试图在soapenv:Header元素上设置一个基于传递给xslt的参数而更改的名称空间。

这是我正在使用的模板,预期的输出如下。

xslt的输入是3个参数,它们包含一个名称空间(该名称空间是变化的),请求方法和刚刚复制的消息正文。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        exclude-result-prefixes="xs"
        version="2.0">
    <xsl:param name="RequestNameSpace" />
    <xsl:param name="RequestMethod"/>
    <xsl:param name="RequestMessageBody" />

    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="/" >
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myns="{$RequestNameSpace}">
            <soapenv:Header/>
            <soapenv:Body>
                <xsl:element name="myns:{$RequestMethod}">
                    <xsl:copy-of select="$RequestMessageBody" />
                </xsl:element>
            </soapenv:Body>
        </soapenv:Envelope>

    </xsl:template>
</xsl:stylesheet>

当前输出,请注意soapenv:Envelope标记中未应用名称空间的情况,Im后面是要传入的RequestNameSpace的含义。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myns="{$RequestNameSpace}">
<soapenv:Header/>
<soapenv:Body>
    <myns:hello_world>
       <test_tag>Test output</test_tag>
    </myns:hello_world>
</soapenv:Body>
</soapenv:Envelope>

如果有人能指出我在做什么错,那就太好了。我相信它与这个事实有关,即我没有为soapenv:Envelop元素使用xsl:type元素,但是我不确定我如何声明它并包含名称空间。

干杯

michael.hor257k

为什么不使用:

<xsl:element name="{$RequestMethod}" namespace="{$RequestNameSpace}">
    <xsl:copy-of select="$RequestMessageBody" />
</xsl:element>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将xml转换为不包含soapEnvolpe和名称空间的名称,还使用xslt将名称空间添加到内部元素

如何将变量添加到变量名

如何使用变量的名称将命名元素添加到R向量

使用XSLT将空间添加到xml值

PHP-以变量名称作为键将变量添加到关联数组

如何使用 xslt 转换将多个子元素添加到新的父元素中

将变量名称值对动态添加到JSON对象

根据变量名称将列添加到数据框

XSLT删除根名称空间并将名称空间添加到另一个元素

如何使用xslt将单个元素添加到xml的末尾?

Laravel - 如何将变量添加到输入名称

XSLT-将名称空间添加到节点XML

将存储在变量中的对象添加到另一个对象而不指定键是使用变量名称作为键。这是预期的行为吗?

使用XSLT将名称空间添加到XML的特定节点

将元素添加到页面时如何通知我?

jQuery如何使用add()将元素添加到缓存在变量中的选择中

如何使用变量计数器将命名元素添加到R列表?

将Xml元素添加到文档时,名称空间出现问题

错误:无法将属性和名称空间节点添加到父元素

如何将变量附加到变量名称

将元素增量添加到变量

我如何使用CSS:after将Glyphicon元素添加到输入中

如何使用Javascript将元素目标添加到我的代码中

XSLT将新元素添加到XML的根元素

XSLT元素将属性添加到新元素中

如何使用for循环将元素添加到vec或rowvec?

如何使用Thymeleaf将元素添加到集合中

如何使用JS将多个类添加到元素?

如何使用PHP将元素添加到JSON对象?