2012-04-05 3 views
1

У меня есть Sample Code, где я пытаюсь читать данные из XML-файла и манипулировать значениями. Это работает прекрасно, когда я попробовал его на http://ideone.comGroovy read values ​​from xml

В моем фактическом коде я звоню что-то вроде этого

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]]] 

Может кто-нибудь помочь мне понять, что здесь происходит и как это решить?

ответ

0

Вы используете 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" 
} 
+0

Спасибо. Думаю, это отвечает на мой вопрос. Это не решает мою проблему :( Я пытаюсь выяснить, как это сделать с условием 'if'. – latestVersion

+0

@latestVersion Вы объяснили проблему в вопросе? Я не вижу этого :-(Что была ли реальная проблема? –

+0

@latestVersion Можете ли вы добавить немного к нижней части своего вопроса, чтобы понять, что вы подразумеваете под _ "... Я изо всех сил пытаюсь выяснить, как это сделать с условием if." _ –