xml - Groovy XmlSlurper 将 " 添加到所有值
问题描述
我想使用 Groovy XmlSlurper 在 XML 的所有字段值的开头和结尾添加“,如下所示。
<SAPEmployeeData>
<record>
<COMPANY>060</COMPANY>
<VENDOR>E010013787</VENDOR>
<EMPLID>10013787</EMPLID>
<EFFECT_DATE>20180401</EFFECT_DATE>
<LAST_NAME>GONZALEZ-VARELA</LAST_NAME>
</record>
<record>
<COMPANY>060</COMPANY>
<VENDOR>E010013788</VENDOR>
<EMPLID>10013788</EMPLID>
<EFFECT_DATE>20140101</EFFECT_DATE>
<LAST_NAME>CARDOZO</LAST_NAME>
</record>
</SAPEmployeeData>
->
<SAPEmployeeData>
<record>
<COMPANY>"060"</COMPANY>
<VENDOR>"E010013787"</VENDOR>
<EMPLID>"10013787"</EMPLID>
<EFFECT_DATE>"20180401"</EFFECT_DATE>
<LAST_NAME>"GONZALEZ-VARELA"</LAST_NAME>
</record>
<record>
<COMPANY>"060"</COMPANY>
<VENDOR>"E010013788"</VENDOR>
<EMPLID>"10013788"</EMPLID>
<EFFECT_DATE>"20140101"</EFFECT_DATE>
<LAST_NAME>"CARDOZO"</LAST_NAME>
</record>
</SAPEmployeeData>
我认为代码将是这样的。但我不知道在 replaceNode 部分写什么。有人能帮助我吗?
def Message processData(Message message) {
//Body
def body = message.getBody(java.lang.String) as String;
def xmlString = new XmlSlurper().parseText(body)
// filter on date
def items = xmlString.record.replaceNode{ something in this }
// Create output body
def newbody = new StreamingMarkupBuilder().bind {mkp.yield xmlString}.toString()
message.setBody(newbody)
return message;
}
解决方案
尝试这个:
xmlString.children().each{ record->
record.childNodes().each{
it.replaceBody("\"${it.text()}\"")
}
}
推荐阅读
- reactjs - 单击时反应材质表不会呈现图标
- ios - 使用 minimumScaleFactor 缩放字体后,UILabel 未调整大小
- e-commerce - hybris 是否有任何单独的 JVM 可用?以及如何检查?
- docker - 在 Traefik 动态配置中使用环境变量
- java - 我们可以在@Entity 类中创建@CollectionTable,哪个类在其他@Entity 类中用作CollectionTable
- mongodb - MongoDB,如何关联数组字段进行统计
- bash - 在 linux 文件中逐行比较
- javascript - 无法选择动态生成的 HTML 元素(使用 Handlebars Block 助手生成)
- python - 根据两列中的值匹配熊猫数据框中的行
- python - 使用 Google Vision API 从图像中提取分块文本