Разбор файла XML с использованием XMLHolder и добавление их в arrayList - PullRequest
0 голосов
/ 07 февраля 2020

пример. xml

    <?xml version="1.0" encoding="UTF-8"?>
     <Element>
       <Language Type="Java">
            <parameter name="JavatPoint">
                <url>https://www.javatpoint.com/</url>
            </parameter>

            <parameter name="Guru99">
                <url>https://www.guru99.com/</url>
            </parameter> 

            <parameter name="w3schools">
                <url>https://www.w3schools.com/</url>
            </parameter> 
       </Language>

       <Language sdkType="Python">
            <parameter name="Tutorialspoint">
                <url>https://www.tutorialspoint.com/python/</url>
            </parameter>

            <parameter name="LearnPython">
                <url>https://learnpythonthehardway.org/</url>
            </parameter> 

            <parameter name="Code Academy">
                <url>https://www.codecademy.com/learn/learn-python</url>
            </parameter>    
       </language> 
   </Element>

Мне нужно проанализировать этот пример. xml на основе типа (например, java, python), чтобы получить значение URL и добавьте эти значения в arrayList. Поскольку я не знаю о xmlHolder, может кто-нибудь подсказать мне, как этого добиться?

Спасибо.

1 Ответ

0 голосов
/ 07 февраля 2020

Вы можете сделать это с помощью Groovy следующим образом (обратите внимание, что последний в вашем примере с нижним регистром L и недопустим XML):

import groovy.util.XmlSlurper

def xmlString ='''

     <Element>
       <Language Type="Java">
            <parameter name="JavatPoint">
                <url>https://www.javatpoint.com/</url>
            </parameter>

            <parameter name="Guru99">
                <url>https://www.guru99.com/</url>
            </parameter> 

            <parameter name="w3schools">
                <url>https://www.w3schools.com/</url>
            </parameter> 
       </Language>

       <Language sdkType="Python">
            <parameter name="Tutorialspoint">
                <url>https://www.tutorialspoint.com/python/</url>
            </parameter>

            <parameter name="LearnPython">
                <url>https://learnpythonthehardway.org/</url>
            </parameter> 

            <parameter name="Code Academy">
                <url>https://www.codecademy.com/learn/learn-python</url>
            </parameter>    
       </Language> 
   </Element>
''' 
// error in closing tag

def Element = new XmlSlurper().parseText(xmlString)
def arr = []
def a = Element.Language.each() { node ->
    node.attributes().each { att, lang ->
        println lang
        arr = []
        node.'**'.findAll() { childnode -> childnode.name() == 'parameter' }.url.each {
            arr.add(it)
        }
    }
    arr.each { println it }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...