我想借助Groovy解析一個具有多個聯繫人的xml文件。我想要做的是從xml文件中獲取每個聯繫人,並將其作爲REST請求的一部分逐個發送。我嘗試在XmlParser和XmlSlurper的幫助下編寫一個groovy腳本,但是這樣做並不是很成功。我對Groovy非常陌生。閱讀並暫時保存Groovy中的一個文件中的XML內容
下面是該文件的內容:
<contacts>
<contact>
<firstName>Dummy</firstName>
<lastName>Contact1</lastName>
<gender>M</gender>
</contact>
<contact>
<firstName>Dummy</firstName>
<lastName>Contact2</lastName>
<gender>F</gender>
</contact>
</contacts>
,這裏是我的代碼試圖使用的XmlSlurper:
import groovy.xml.*
//get the file path
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def projectPath = groovyUtils.projectPath
def f = new File(projectPath + '\\contacts - xml.txt')
//check if file exists
if(!f.exists())
{
throw Exception("The XML File does not exist")
}
//parse file
def xml = new XmlSlurper().parse(f)
log.info xml
以下是輸出我得到了上面的代碼:
DummyContact1MDummyContact2F
我也可以訪問個體節點,例如:
log.info xml.contact[0].gender
此外,當我使用XmlParser的,而不是的XmlSlurper,我得到這似乎更不可用的響應:
contacts[attributes={}; value=[contact[attributes={}; value=[firstName[attributes={}; value=[Dummy]], lastName[attributes={}; value=[Contact1]], gender[attributes={}; value=[M]]]], contact[attributes={}; value=[firstName[attributes={}; value=[Dummy]], lastName[attributes={}; value=[Contact2]], gender[attributes={}; value=[F]]]]]]
有沒有一種方法,我可以從文件中讀取爲XML的內容,並將其存儲在保存xml的變量中,以便我可以簡單地將它傳遞給REST Post Request?無法知道文件中的聯繫人記錄數量或每個聯繫人的節點數量。
您是否使用SoapUI-Pro? -Pro開箱即可完成這種事情。 – SiKing
不幸的是沒有。使用免費版本。 – user2278764