当前位置:  开发笔记 > 编程语言 > 正文

在Groovy MarkupBuilder中使用命名空间

如何解决《在GroovyMarkupBuilder中使用命名空间》经验,为你挑选了1个好方法。

我想要以下输出:



  ZH
  2001
  
    
      2001-01-01
      
        token
        token
      
    
  

我可以将命名空间添加到xml中,如下所示:

xml.records('xmlns:structure' :"http://test.ch/structure/1" ...

但是我如何为xml元素创建名称空间前缀?我找到的唯一解决方案是:

tester('xmlns:structure' :"http://test.ch/structure/1", 'ZH')

但这给了我以下输出:

ZH

它的语法是正确的,但是当你有很多节点时阅读并不好.



1> tim_yates..:

你可以这样做(不确定它是你想要的)

import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil

def xmlBuilder = new StreamingMarkupBuilder()
writer = xmlBuilder.bind {
  mkp.declareNamespace( register: "http://www.test.ch/register/1" )
  mkp.declareNamespace( structure: "http://test.ch/structure/1" )
  'structure:structuralDataRoot' {
    'structure:tester'( 'ZH' )
    'structure:surveyYear'( 2001 )
    'structure:surfaceData' {
      'structure:houseSurfaceData' {
        'structure:creationDate'( '2001-01-01' )
        'structure:localFarmId' {
          'register:houseIdCategory'( 'token' )
          'register:houseId'( 'token' )
        }
      }
    }
  }
}

println XmlUtil.serialize( writer )

该代码输出:



  ZH
  2001
  
    
      2001-01-01
      
        token
        token
      
    
  


如何声明为“ mkp”?
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有