所以我有一个步骤,需要一些数字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