Len pre uplnost, lepsie by bolo pouzit XmlParser namiesto XmlSlurper, ktory podporuje GPath (akusi obdobu XPath). Kod by potom vyzeral nasledovne:

def Collections = new XmlParser().parseText(xml)
def CounterSlowCollections = Collections.Collection.findAll {it.Variables.Variable.Name.text().contains("counterSlow")}
CounterSlowCollections.each {println it.Name.text()}

Java a Groovy maju k sebe blizko preto som si dovolil zaslat svoj prispevok. :-)

Ales



ales  wrote / napísal(a):
Ahoj,
pripadne je mozne pouzit Groovy. Kod by mohol vyzerat nasledovne:

def Collections = new XmlSlurper().parseText(xml)
if (Collections.Collection.Variables.Variable.Name.text().contains("counterSlow")) {
   println Collections.Collection.Name
}

Ales



Martin Jedlička  wrote / napísal(a):
Zdravim,
mam XML a pracuji s nim pomoci DOM. Potreboval bych vedet, jak nejefektiveji/nejrychleji vyhledat nejakou hodnotu uzlu. Mam XML (viz nize) potreboval bych v nem najit hodnotu 'counterSlow' (jmeno promenne), pokud ji najde, tak bych potreboval vypsat jmeno kolekce 'Test'.
Nejaky priklad jak toto delat?
Diky moc.
Martin

XML:
<Collections>
   <Collection>
       <Name>Test</Name>
       <Period>300</Period>
       <Variables>
           <Variable>
               <Name>hlavicka</Name>
               <CPU>3</CPU>
               <Format>dec</Format>
               <Unit>None</Unit>
               <Graph>false</Graph>
           </Variable>
           <Variable>
               <Name>counterFast</Name>
               <CPU>3</CPU>
               <Format>1.15</Format>
               <Unit>ALT01_Napeti DC</Unit>
               <Graph>true</Graph>
           </Variable>
           <Variable>
               <Name>counterSlow</Name>
               <CPU>3</CPU>
               <Format>1.15</Format>
               <Unit>ALT04_Proud</Unit>
               <Graph>true</Graph>
           </Variable>
       </Variables>
   </Collection>
</Collections>



Odpovedet emailem