[英]XSL. Passing param in string
这是我的XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="RSA-InsurerID"/>
<xsl:param name="RSA-schema-version"/>
<xsl:template match="/">
<rsa:DriverStatusRequest xmlns:rsa="com/rsa/eosago/schema-"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InsurerID>
<xsl:value-of select="$RSA-InsurerID"
xmlns:ns2="com/rsa/eosago/schema-"/>
</InsurerID>
<IDCheckDriver>
<xsl:value-of select="ns2:DriverResponse/IDCheckDriver"
xmlns:ns2="com/rsa/eosago/schema-"/>
</IDCheckDriver>
</rsa:DriverStatusRequest>
</xsl:template>
这两个参数值通过Apache Camel传递。
问题是如何使用xmlns:rsa="com/rsa/eosago/schema-"
传递和连接param <xsl:param name="RSA-schema-version"/>
xmlns:rsa="com/rsa/eosago/schema-"
?
我得到了我的<xsl:param name="RSA-InsurerID"/>
<xsl:value-of select="$RSA-InsurerID"
,但我不知道如何将它传递给值文本。
我期待这个输出:
<?xml version="1.0" encoding="UTF-8"?>
<rsa:DriverStatusRequest xmlns:rsa="com/rsa/eosago/schema-1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InsurerID>18800000</InsurerID>
<IDCheckDriver/>
</rsa:DriverStatusRequest>
太谢谢了!
尝试
<InsurerID>
<xsl:value-of select="$RSA-InsurerID"
xmlns:ns2="com/rsa/eosago/schema-{$RSA-schema-version}"/>
似乎您尝试做的是在运行时动态生成命名空间。 例如,看看这个或这个答案。 并尝试:
<xsl:template match="/">
<xsl:element name="rsa:DriverStatusRequest" namespace="com/rsa/eosago/schema-{$RSA-schema-version}" >
<InsurerID>
<xsl:value-of select="$RSA-InsurerID" />
</InsurerID>
</xsl:element>
</xsl:template>
这会产生:
<rsa:DriverStatusRequest xmlns:rsa="com/rsa/eosago/schema-1.2">
<InsurerID>18800000</InsurerID>
</rsa:DriverStatusRequest>
但我认为会有更多问题出现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.