![](/img/trans.png)
[英]How to extract value from SOAP XML response with multiple namespaces using Rest-assured?
[英]Getting a value from XML response in REST-Assured
我正在嘗試使用REST Assured從 XML 響應中獲取值,但我只獲取空值。
XML 示例:
<?xml version="1.0" ?>
<ncresponse
orderID="50143601"
STATUS="5"
SCORING="1"
SCO_CATEGORY="G">
</ncresponse>
我的代碼:
RestAssured.useRelaxedHTTPSValidation();
Map<String, String> body = new HashMap<>();
body.put("ORDERID", orderId);
body.put("USERID", QUERY.getUser());
body.put("PSW", QUERY.getPass());
Response validation = given().proxy(host("myproxy.com").withPort(8080)
).params(body).when().get(QUERY.getUrl());
return from(validation.asString()).get("ncresponse.STATUS");
在這種情況下,我試圖獲取STATUS
值(“5”),但我得到的只是任何屬性的""
。
任何幫助將不勝感激。
您需要首先將響應轉換為 xml 類型,然后從該響應中獲取值。
首先,您需要在代碼中導入以下內容:
import io.restassured.path.xml.XmlPath;
然后你的代碼應該是:
String stringResponse = validation.asString();
XmlPath xmlPath = new XmlPath(stringResponse);
String status = xmlPath.get("ncresponse.STATUS");
現在字符串status
包含您想要的值。
好吧,我意識到我在這里犯了一個錯誤。 我試圖從節點“ncresponse”獲取一個屬性,因此在需要該屬性之前使用“@”符號:
from(validation.asString()).get("ncresponse.@STATUS");
我關閉了,謝謝大家!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.