1. 程式人生 > >rest-assured的xmlPath使用方法總結

rest-assured的xmlPath使用方法總結

xml文件 type mil 文檔 lua alua name years wide

xmlPath的使用方法跟JsonPath的使用方法相近,下面簡單總結一下:

準備xml文件數據:

 1 <records>
 2    <car name=‘HSV Maloo‘ make=‘Holden‘ year=‘2006‘>
 3      <country>Australia</country>
 4      <record type=‘speed‘>Pickup Truck with speed of 271kph</record>
 5    </car>
 6    <car name=‘P50‘ make=‘Peel‘ year=‘1962‘>
 7
<country>Isle of Man</country> 8 <record type=‘size‘>Street-Legal Car at 99cm wide, 59kg</record> 9 </car> 10 <car name=‘Royale‘ make=‘Bugatti‘ year=‘1929‘> 11 <country>France</country> 12 <record type=‘price‘>Most Valuable Car at $15 million</record> 13
</car> 14 </records>

下面我們使用rest-assured的xmlPath來簡單的提取一些值:

 1 //recordsXml代表xml文件數據
 2 XmlPath xmlPath = new XmlPath(recordsXml);
 3 //設置根路徑
 4 xmlPath.setRoot("records");
 5 
 6 //獲取第一個car的name屬性
 7 String nameOfFirstCar = xmlPath.get("car[0].@name");
 8 // 獲取最後一個car的country屬性
 9 String nameOfCountryForLastCar = xmlPath.get("car[-1].country");
10 // 獲取前兩個記錄的年份,作為一個list(使用ints) 11 List<string> years = xmlPath.getList("car[0..1].@year", Integer.class);

與JsonPath一樣,xmlPath同樣支持簡單提取某個值:

1 // "from"從XmlPath中靜態導入
2 String firstCarName = from(recordXml).get("records.car[0].@name");

你也可以做一些復雜點的操作,比如以int的形式獲取第一條記錄的年份:

1 // Year is 1929
2 int year = from(recordXml).
3     getInt("[email protected]()*.toInteger().min()");

我們首先將所有year屬性轉換為一個list,list中的所有元素都調用toInteger() 方法(這需要year屬性在xml文檔中以String類型展示),然後調用min()方法,返回list中的最小元素:1929

rest-assured的xmlPath使用方法總結