XPTY0004:不允许将一个以上项目的序列作为string-length()的第一个参数

时间:2018-07-31 19:03:57

标签: xml xslt

使用XSLT模板将XML转换为对象时,我遇到了这个问题

  

XPTY0004:不允许将一个以上项目的序列作为string-length()的第一个参数

我的Xml

  <?xml version="1.0" encoding="UTF-8"?>
<NS1:Envelope xmlns:NS1="http://www.w3.org/2003/05/soap-envelope">
   <NS1:Header>
      <NS2:metadata xmlns:NS2="http://www.test.net/services/metadata/v2.0">
         <serviceId>id</serviceId>
         <serviceVersion>1.0</serviceVersion>
         <locale>pt_BR</locale>
         <internals/>
      </NS2:metadata>
   </NS1:Header>
   <NS1:Body>
      <NS1:Fault>
         <NS1:Code>
            <soapenv:Value xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">soapenv:Receiver</soapenv:Value>
            <NS1:Subcode>
               <NS1:Value>UNKNOWN_ERROR</NS1:Value>
            </NS1:Subcode>
         </NS1:Code>
         <NS1:Reason>
            <NS1:Text xml:lang="en">tranformData. tente novamente</NS1:Text>
         </NS1:Reason>
         <NS1:Detail>
            <NS3:errors xmlns:NS3="http://www.test.net/services/errors/v1.0">
               <error>
                  <code>UNKNOWN_ERROR</code>
                  <message>unknow error.</message>
                  <type>GENERIC</type>
                  <source>tranformData</source>
               </error>
               <error>
                <code>UNKNOWN_ERROR</code>
                  <message>unknow error.</message>
                  <type>GENERIC</type>
                  <source>tranformData</source>
               </error>
            </NS3:errors>
         </NS1:Detail>
     </NS1:Fault>
   </NS1:Body>
</NS1:Envelope>

我的XSLT行:

<xsl:if test="string-length(//source/text()) + string-length(//code/text()) > 0">

请帮助我。

0 个答案:

没有答案