簡體   English   中英

XSL。 在字符串中傳遞參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM