2017-12-08 11 views
0

견본 LEDES XML 파일 https://codebeautify.org/xmlviewer/cbdc79e7이 있고 인보이스 노드의 inv_id 값으로 맵을 만들고 모든 자식 요소를 작성하려고합니다.특정 부모 노드 값과 XML의 모든 하위 노드 값을 사용하여 맵 만들기

['Invoice 31' : [10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33] 
'Invoice 32' : [50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73] 
] 

아래와 같이 file_item_nbr 값은 누군가가 나를 도와 주실 수 있습니까?

답변

1

당신은 sudo를 코드를 얻을 수 있어야합니다 :

  • 필요한지도 여기
  • 빌드 모든 invoice 요소 읽기

    • 사용 XmlSlurper 구문 분석하는 XML
    • 는 스크립트입니다 :

      //Not putting entire xml here, just pass the xml as string to parseText method 
      def xml = new XmlSlurper().parseText(xmlString) 
      //Get the invoices 
      def invoices = xml.'**'.findAll{it.name() == 'invoice'} 
      //Build the desired result 
      println invoices.collectEntries {inv -> [(inv.inv_id): inv.'**'.findAll{it.name() == 'file_item_nbr'}*.text()] } 
      

      빠르게는 XML에서 생성되는 JAX-B 자바 객체에서 동일한을 달성 할 수있는 경우 궁금 온라인 작동 솔루션에 대한 demo

    +0

    덕분에 그것을 시도 할 수있다? – RanPaul

    +0

    @RanPaul, 저는 그것이 가능해야한다고 믿습니다. 그러나 그것은 완전히 다른 것일 수 있습니다. – Rao

    +0

    가 Groovy solution https://stackoverflow.com/questions/47717505/groovy-create-a-map-with-jax-b-objects-specific-attributes에 대한 또 다른 질문을 만들었습니까? 대답 해주십시오. – RanPaul