我发现了大量示例如何将命名空间添加到xml文件,但没有找到如何从现有文件中获取命名空间的示例。我正在使用XmlParser。 要清楚,如果我有一个文件
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
...
</wsdl>
我有前缀soap
然后我希望得到http://schemas.xmlsoap.org/wsdl/soap/
作为结果
当我使用时:
def wsdlRoot = new XmlParser().parseText(text)
println wsdlRoot.attribute('xmlns:soap')
println wsdlRoot.@'xmlns:soap'
我得到了
null
null
有什么想法吗?
答案 0 :(得分:1)
两种方式:
XmlSlurper
而不是不知道名称空间。 例如
def wsdlRoot = new XmlSlurper().parseText( text )
assert wsdlRoot.lookupNamespace( 'soap' ) ==
'http://schemas.xmlsoap.org/wsdl/soap/'
XmlParser
并使命名空间不知道例如
def wsdlRoot = new XmlParser(false, false).parseText(xml)
assert wsdlRoot.@'xmlns:soap' == 'http://schemas.xmlsoap.org/wsdl/soap/'
我认为第一种方法对你来说更合适。