所以我有一個步驟,需要一些數字ID &在數據庫中查找它們的值。我希望能夠編輯響應xml &包括從數據庫中獲取的值爲了可讀性的目的。SOAPUI Groovy腳本插入自定義值的xml節點
我想出瞭如何將xml節點添加到xmlHolder中,但是我似乎無法在節點內放置一個值。
這是最接近「看似」工作代碼:
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def dbResult = testRunner.testCase.testSteps["getOfferNames"].getResponseContent()
def xmlOfferNames = groovyUtils.getXmlHolder(dbResult)
def names = xmlOfferNames.getNodeValues("//NAME")
def codes = xmlOfferNames.getNodeValues("//OFFERCODE1")
def recs = groovyUtils.getXmlHolder("getRetailRecommendation#Response")
def insert
for(int i=0; i<names.size(); i++){
for(node in recs.getDomNodes("//RetailRecommendation[OfferCode='"+codes[i]+"']")){
//insert = '<OFFER_NAME>'+names[i]+'</OFFER_NAME>' //nothing is taking strings
//node.appendNode(new Node(node, 'OFFER_NAME', names[i])) //dne constructor
insert = node.getOwnerDocument().createElementNS(node.getNamespaceURI(), "OFFER_NAME")
//log.info names[i]
insert.setNodeValue(names[i])
//log.info insert.metaClass.methods*.name.sort().unique()
node.insertBefore(insert , node.getFirstChild())
}
}
recs.updateProperty()
log.info recs.getXml()
然而,當它打印出生成的XML我只是空<OFFER_NAME/>
標籤,沒有任何價值。
我試過使用insert.setTextContent()
,但它說java.long.RuntimeException: DOM Level 3 Not implemented
。我沒有看到任何可以用來設置值的東西。
(半相關地,這奇怪不要麼更新我的步驟XML,但我還沒有開始研究這還)
代碼只能與沒有解釋的答案被認爲是低質量的,請加一個解釋上面的線是如何被使用,以及如何解決問題。 – Dijkgraaf