groovyの新機能です。Groovy xmlリクエストの解析
いくつかのxmlリクエストを解析していますが、しばらく運が必要です。
決勝結果:
- 私は、XML要求 "RequestRecords" は "DetailsRequest" atrributeを持っているかどうかを確認したいです。
- "RequestF"にFieldName = "Id"がある "FieldValue"番号を取得します。
また、何らかの理由でXmlSlurperを使用できません。これは、 'def root = new XmlParser()。parseText(xml)'にfalseを返すためです。
def env = new groovy.xml.Namespace("http://schemas.xmlsoap.org/soap/envelope/", 'env');
def ns0 = new groovy.xml.Namespace("http://tempuri.org/", 'ns0')
def xml = '''<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<ns0:Request1>
<ns0:Request_Sub>
<ns0:RequestRecords TableName="Header">
<ns0:RequestF FieldName="SNumber" FieldValue="XXX"/>
<ns0:RequestF FieldName="TNumber" FieldValue="30"/>
</ns0:RequestRecords>
<ns0:RequestRecords TableName="Details">
<ns0:RequestF FieldName="Id" FieldValue="1487836040"/>
</ns0:RequestRecords>
</ns0:Request_Sub>
<ns0:isOffline>false</ns0:isOffline>
</ns0:Request1>
</env:Body>
</env:Envelope>'''
def root = new XmlParser().parseText(xml)
println ("root" + root)
assert "root_node" == root.name()
println root_node
ルートノードのアサートも失敗します。
は、だから何が正しいの主張は、この場合にはすべきですか? アサートroot.name()== 'エンベロープ' も失敗します。 –
それが何であるかを確認するために、アサーションの前に 'println "root [$ {root.name}]"'を追加するのは簡単です。それは私のために "封筒"を示しています。 –