当前位置: 首页 > 知识库问答 >
问题:

SoapUI:CDATA响应为null。搜索了各种文章但没有找到

丘浩宕
2023-03-14

你好,我有下面的SOAP回复。

'

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetWeatherResponse xmlns="http://www.webserviceX.NET">
         <GetWeatherResult><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
  <Location>Cape Town, Cape Town International Airport, South Africa (FACT) 33-59S 018-36E 0M</Location>
  <Time>Jun 04, 2016 - 05:00 AM EDT / 2016.06.04 0900 UTC</Time>
  <Wind> from the SE (130 degrees) at 21 MPH (18 KT):0</Wind>
  <Visibility> greater than 7 mile(s):0</Visibility>
  <SkyConditions> mostly clear</SkyConditions>
  <Temperature> 60 F (16 C)</Temperature>
  <DewPoint> 44 F (7 C)</DewPoint>
  <RelativeHumidity> 55%</RelativeHumidity>
  <Pressure> 30.39 in. Hg (1029 hPa)</Pressure>
  <Status>Success</Status>
</CurrentWeather>]]></GetWeatherResult>
      </GetWeatherResponse>
   </soap:Body>
</soap:Envelope>"`

对于以下请求:http://www.webservicex.net/globalweather.asmx.

我想使用脚本在上面的响应中读取XML数据。但它为空。

我已经尝试了如下脚本

def groovyUtils=新com.eviware.soapui.support.GroovyUtils(上下文)def持有者=groovyUtils.getXmlHolder(MessageExchange.responseContent)holder.namespaces["ns"] = " http://www.webserviceX. NET/"def weatherinfo=holder.getNodeValue("//ns: GetWeatherResult/text()")
log.infoweatherinfo

位而不是得到上面的响应,我得到空值。我已经阅读了CDATA上的SOAPUI文档,但它不起作用。

共有1个答案

茹展鹏
2023-03-14

我得到了答案。只是命名空间中的一个额外斜杠给了我空。

以下两个脚本现在都在工作。

> def respXmlHolder = new
> com.eviware.soapui.support.XmlHolder(messageExchange.getResponseContentAsXml())
> respXmlHolder.namespaces["ns1"] ="http://www.webserviceX.NET" def
> CDATAXml= respXmlHolder.getNodeValue("//ns1:GetWeatherResult/text()")
> log.info CDATAXml

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)
holder.namespaces["ns"] = "http://www.webserviceX.NET"
def weatherinfo= holder.getNodeValue("//ns:GetWeatherResult/text()")
log.info weatherinfo
 类似资料:
  • 我是开发android应用程序的新手 我正在开发一款音乐播放器,希望从音频文件的元数据中获取歌曲名称、艺术家、专辑名称、专辑艺术 我使用了,但当有800首歌曲时,速度会很慢,有些文件返回null,而其他音乐播放器可以检索这些信息。 然后我使用获取歌曲名称、艺术家、专辑名称和媒体商店。音频专辑。外部内容_URI获取专辑艺术。 是否有任何uri可同时获取(歌曲名称、艺术家、专辑名称、专辑艺术) 因为我

  • 使用Spring,使用以下代码: 我得到 pojo的一个片段:

  • sp_sql_posts() 示例: <?php $tag='cid:6;field:post_title,post_content;order:listorder asc'; $posts=sp_sql_posts($tag); print_r($posts); $smeta=json_decode($vo['smeta'],true); //smeta处理方法,将其转化为数组 ?>

  • 使用爪哇的优酷Api,我做了一个视频搜索。通过使用以下示例,它运行良好。 ttps://developers.google.com/youtube/v3/code_samples/java#search_by_keyword 获得了以下数据。 我想要“NextPageToken”和“PrevPageTokens”。所以我添加了以下代码。 searchResponse.getNextPageToke

  • 我需要在身份验证后从LDAP中检索各种值,如描述、办公室等。 我已经能够完成身份验证,但无法检索其他值。 我应该使用什么名称来检索完整的数据?? 请帮助。 我的代码如下:

  • 我们有一个长时间运行的请求,我们接收到,但我们没有设置响应超时,所以它应该无限期等待,对吗?我还检查了user.properties和httpclient.parameters文件,也没有看到其中设置的任何值。 JMeter版本5.3