如何检查标签是否包含 groovy xmlslurper 中的值或子标签?
How to check that a tag contains value or child tag in groovy xmlslurper?
def list="<books>
<book>
<title>xx</title>
<year>xxxx</year>
<book>
</books>" (or)
def list="
<books>
<book> xxxx <book>
</books>";
def books=new XMLSlurper(list);
我有这样的需求
if (books.book has value ) do something
else if(books.book has tag ) do something
输入可以是第一个或第二个,动态不同。如何在没有任何迭代或单次检查的情况下实现上述条件?
试试这个代码:
我希望这段代码能阐明您的要求。
def list1 = "<books><book>xxx</book></books>"
def list2 = "<books><book><new>xxx</new></book></books>"
[list1, list2].each{ text->
def root = new XmlSlurper().parseText(text)
if (root.book.children().collect{ it.name()})
{
println 'book has children : '+ root.book.children().collect{ it.name()}
}
else
{
println 'book has value :'+root.book
}
}
def list="<books>
<book>
<title>xx</title>
<year>xxxx</year>
<book>
</books>" (or)
def list="
<books>
<book> xxxx <book>
</books>";
def books=new XMLSlurper(list);
我有这样的需求
if (books.book has value ) do something
else if(books.book has tag ) do something
输入可以是第一个或第二个,动态不同。如何在没有任何迭代或单次检查的情况下实现上述条件?
试试这个代码:
我希望这段代码能阐明您的要求。
def list1 = "<books><book>xxx</book></books>"
def list2 = "<books><book><new>xxx</new></book></books>"
[list1, list2].each{ text->
def root = new XmlSlurper().parseText(text)
if (root.book.children().collect{ it.name()})
{
println 'book has children : '+ root.book.children().collect{ it.name()}
}
else
{
println 'book has value :'+root.book
}
}