2011-10-12 9 views

Trả lời

3

Từ Groovy documentation on XMLSlurper:

Nếu yếu tố của bạn chứa các ký tự như dấu gạch ngang, bạn có thể gửi kèm theo tên phần tử trong dấu ngoặc kép.

Ví dụ:

def myXML = '<router name="b" id="x" manufacturer-id="e" model-number="a"/>' 
def router = new XmlSlurper().parseText(myXML) 
def attr = [email protected]"model-number".text() 

Tested và làm việc cho tôi.

+0

Nó làm việc cho tôi .... Thank you very much I đã thử sử dụng dấu ngoặc kép nhưng, đã bỏ lỡ @. –

1

Bạn cũng có thể xử lý các thuộc tính được gạch nối (và không gạch nối) bằng cách sử dụng các biến, rất hữu ích vào các lần xử lý chung XML với các thuộc tính không xác định hoặc không nhất quán (chẳng hạn như, có thể đã gửi biểu mẫu web).

đây bạn có thể xem một ví dụ mà vòng qua tất cả các thuộc tính trong XML, bất kể họ có một hypen hay không:

def xml = "<router name='b' id='x' manufacturer-id='e' model-number='a'/>" 
def router = new XmlSlurper().parseText(xml) 
for (String attrib : router.attributes().keySet()) { 
    value = [email protected]"$attrib".text() 
    println("${attrib}=${value}") 
}