![](/img/trans.png)
[英]How to read values from XML Request and write into XML Response using Groovy?
[英]Groovy read values from xml
我有一个示例代码,我在其中尝试从 xml 文件读取数据并处理这些值。 当我在http://ideone.com上尝试时,它工作得很好
在我的实际代码中,我这样调用
def xmlFile = "path/to/xmlfile.xml"
def tcproj = new XmlParser().parseText( getTemplate(xmlFile).toString() )
但是当我在实际代码中使用示例代码中指定的相同if
条件时,我得到了完全不同的结果。
在尝试调试时,我发现结果差异很大。 当我尝试这样做时,我的实际代码的结果
println records.supported_versions.version.any { println it; it.toString().matches( /$ver/ ) }
这是
version[attributes={}; value=[6.0.35.A]]
version[attributes={}; value=[7.0.25.B]]
false
当我做
println records.supported_versions.version.toString()
我得到一个结果
[version[attributes={}; value=[6.0.35.A]], version[attributes={}; value=[7.0.25.B]]]
有人可以帮助我了解这里发生的事情以及如何解决这个问题吗?
您正在使用XmlParser
而不是该示例中的XmlSlurper
...
要使用 XmlParser,您需要将代码更改为:
class xmlWorker {
static def tcproj = '''<tcs>
<supported_versions>
<version>6.0.35.A</version>
<version>7.0.25.B</version>
</supported_versions>
</tcs>'''
}
def records = new XmlParser().parseText(xmlWorker.tcproj)
def ver = "6.0.35.A"
println "Version: " + ver
println records.supported_versions.version.any {
println it.text()
it.text().matches( /${ver}/ )
}
if( records.supported_versions.version.any { it.text().matches( /${ver}/ ) } ) {
println "if"
} else {
println "else"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.