Xpath SOAPUI属性传输-[错误:意外元素:CDATA]

Xpath SOAPUI属性传输-[错误:意外元素:CDATA],xpath,soapui,property-transfer,Xpath,Soapui,Property Transfer,我有一个SOAPUI项目,目标是API的v4。要使用API,我需要进行身份验证以获取令牌,然后在后续API调用中使用该令牌。我正在使用属性传输来获取身份验证令牌并将其存储为自定义属性(针对TestSuite)。这一切都很好 我现在正在使用API的v1,并且我正在尝试采用相同的方法。但是,当我进行令牌传输时,会出现一个错误: [Error: Unexpected element: CDATA] v1身份验证请求的响应几乎相同,但以下情况除外: 返回的元素具有初始资本 其中一个名称空间不同(参考

我有一个SOAPUI项目,目标是API的v4。要使用API,我需要进行身份验证以获取令牌,然后在后续API调用中使用该令牌。我正在使用属性传输来获取身份验证令牌并将其存储为自定义属性(针对TestSuite)。这一切都很好

我现在正在使用API的v1,并且我正在尝试采用相同的方法。但是,当我进行令牌传输时,会出现一个错误:

[Error: Unexpected element: CDATA]
v1身份验证请求的响应几乎相同,但以下情况除外:

  • 返回的元素具有初始资本
  • 其中一个名称空间不同(参考版本1.0,而不是预期的4.0)
  • 内容长度头是300而不是302(但看不到长度的实际差异)
其中没有CDATA元素

样本响应:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <AuthenticateResponse xmlns="http://cse-healthcare.com/API/1.0">
         <AuthenticateResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <AuthenticationToken>a183577c-52d8-4fa0-a73a-611e6a143d79</AuthenticationToken>
            <Response xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
            <Status>
               <Code>EGE00</Code>
               <Description i:nil="true"/>
               <Status>OK</Status>
            </Status>
         </AuthenticateResult>
      </AuthenticateResponse>
   </s:Body>
</s:Envelope>
财产转让:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <AuthenticateResponse xmlns="http://cse-healthcare.com/API/1.0">
         <AuthenticateResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <AuthenticationToken>a183577c-52d8-4fa0-a73a-611e6a143d79</AuthenticationToken>
            <Response xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
            <Status>
               <Code>EGE00</Code>
               <Description i:nil="true"/>
               <Status>OK</Status>
            </Status>
         </AuthenticateResult>
      </AuthenticateResponse>
   </s:Body>
</s:Envelope>
我使用的是
/*:AuthenticationToken/text()
,除了初始资本外,它与针对v4的操作相同

这不是一个绝对的表演停止;我没有太多的测试要做,所以将令牌复制到其他请求不会造成严重影响,但令人沮丧的是,看起来相同的东西不起作用


有什么想法吗?

属性转移步骤以XML中节点的子节点为目标。如果指定的节点不包含任何子节点,则将选择文本节点。如果有其他子级,则将选择生成的层次结构。在任何一种情况下,您都可以通过选择“传输文本内容”选项来限制仅传输文本。 其他文件如下所示


对于您的情况,从XPath中删除
/text()
节点应该是可行的。

不确定上面的错误是什么。但是想使用groovy脚本实现同样的效果吗?从XPath中删除
/text()
。@SiKing-这很有效。。。也适用于我最初的v4项目。如果您想将此添加为答案。。。也许可以解释一下为什么/text()在一种情况下有效而在另一种情况下无效?