2013-06-24 3 views
0

Мой Input.xmlИспользование DOMCategory для анализа пространства имен xml?

<z1:BookNames name="Groovy" dataType="INTEGER" xmlns:z0="messages" xmlns:z2="base" xmlns:z3="number" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:z1="bookcat"> 
    <z3:BookCost> 
     <z3:IntegerValue>1106</z3:IntegerValue> 
    </z3:BookCost> 
</z1:BookNames> 

Мой код-

document = parse(new FileReader('input.xml')) 

rootElement = document.documentElement 

println rootElement 

use(groovy.xml.dom.DOMCategory) 
{ 
    println rootElement.'@dataType' 
    cf = rootElement.'z3:BookCost' 
} 

Я пытаюсь принести стоимость книги, но неудачная до сих пор. Можете ли вы бросить идеи здесь. Я не могу объявить префикс z3 как «z3: BookCost» z3 может быть любым во входном xml. Но значение пространства имен может быть жестко закодировано в коде.

ответ

2

Вот способ использования XmlSlurper:

new File('input.xml').withReader { x -> 
    new XmlSlurper().parse(x).with { root -> 
    println [email protected] 
    println root.BookCost.IntegerValue 
    } 
} 

isn't namespace aware DOMCategory (AFAIK)