1
У меня есть этот код:перебрать все Xpath результатов
#!/usr/bin/groovy
import javax.xml.xpath.*
import javax.xml.parsers.DocumentBuilderFactory
def testxml = '''
<Employee>
<ID>..</ID>
<E-mail>..</E-mail>
<custom_1>foo</custom_1>
<custom_2>bar</custom_2>
<custom_3>base</custom_3>
</Employee>
'''
def processXml(String xml, String xpathQuery) {
def xpath = XPathFactory.newInstance().newXPath()
def builder = DocumentBuilderFactory.newInstance().newDocumentBuilder()
def inputStream = new ByteArrayInputStream(xml.bytes)
def records = builder.parse(inputStream).documentElement
xpath.evaluate(xpathQuery, records)
}
println processXml(testxml, '//*[starts-with(name(), "custom")]')
и вместо возвращения всех узлов (я обеспечил //
в выражении Xpath), я получаю только первый узел. Как я могу изменить свой код, чтобы отобразить все соответствующие узлы?
Спасибо, я интересно, если вы можете сделать все короче;) –