gpt4 book ai didi

xml - 什么是用 grails 制作 XML 的好方法

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:04 24 4
gpt4 key购买 nike

简短的谷歌搜索看起来你应该使用“MarkupBuilder”,但我不明白。完成 import grails.converters.XML 后,我似乎可以“作为 XML”,但这并不能真正满足我的需求。

我想要这个:

<Thingie>
<someValue>blah</someValue>
<hellaItems>
<Item>
<anotherValue>yaddayadda</anotherValue>
</Item>
<Item>
<anotherValue>different from the first</anotherValue>
</Item>
</hellaItems>

</Thingie>

我什至不知道从哪里开始......

@Stefan 如果我想动态地做怎么办?我认为我不理解一般的“ build 者”可能是问题所在。

def items = ["yaddayadda","different from the first"]

更新:看起来我快要完成了,但是有人可以帮助我完成最后一部分。我这样做:

def items = ["yaddayadda","different from the first"]
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.thingie() {
someValue('blah')
hellaItems(){
items.each{
item(){
anotherValue(it)
}
}


}
}
def xmlString = writer.toString()
println "maybe this will just work"
println xmlString

打印:

maybe this will just work
<thingie>
<someValue>blah</someValue>
<hellaItems>
<item>
<anotherValue />
</item>
<item>
<anotherValue />
</item>
</hellaItems>
</thingie>

为什么我的 anotherValue 不在那里?

更新:使用下面的“tmpHolder”已解决,但是 Bill 有更好的语法建议。

def items = ["yaddayadda","different from the first"]
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.thingie() {
someValue('blah')
hellaItems(){
items.each{
def tmpHolder = it
item(){
anotherValue(tmpHolder)
}
}


}
}
def xmlString = writer.toString()
println "maybe this will just work"
println xmlString

最佳答案

import groovy.xml.MarkupBuilder

def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.thingie() {
someValue('blah')
hellaItems(){
item(){
anotherValue('yaddayadda')
}
item(){
anotherValue('different from the first')
}
}
}

writer.toString()

你没有得到什么?语法有点奇怪,但那是因为它是 DSL。它不应该看起来像普通的常规“代码”。 as XML 的工作方式完全不同,除非您的对象图与您发布的 XML 完全匹配,否则您将无法获得想要的结果。

关于xml - 什么是用 grails 制作 XML 的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com