首页 > 解决方案 > 单个条目的 XSLT 转换为数组失败

问题描述

我有以下输入 SOAP xml。

 Input xml


  <env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
    <wsse:Security
        xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" env:mustUnderstand="1">
        <wsse:UsernameToken wsu:Id="UsernameToken-43">
            <wsse:Username>{simWSUser}</wsse:Username>
        </wsse:UsernameToken>
    </wsse:Security>
</env:Header>
<env:Body>
    <ns5:UserRequest>
        <ns5:LogonUserName>{LogonUserName}</ns5:LogonUserName>
        <ns5:Context>{Context}</ns5:Context>
        <ns5:UserKey>{Key}</ns5:UserKey>
        <ns5:PermissionCode>value-1</ns5:PermissionCode>
        <ns5:PermissionCode>value-2</ns5:PermissionCode>
        <ns5:PermissionCode>value-3</ns5:PermissionCode>
        <ns5:PermissionCode>value-4</ns5:PermissionCode>
    </ns5:UserRequest>
</env:Body>

我应用了以下 XSLT 转换来创建权限代码数组

  <xsl:for-each select="ns5:UserRequest/ns5:PermissionCode">
      <xsl:variable name="count" select="position()"/>
      <xsl:element name="PermissionCodes">
        <xsl:value-of select="."/>
       </xsl:element>
  </xsl:for-each>

但是对于单个条目(一个输入 PermissionCode),创建数组失败。但适用于不止一个。

谁能帮助为什么 PermissionCode 的单一值会失败?

标签: javaxmlxsltxslt-1.0xslt-2.0

解决方案


推荐阅读