我正在尝试解析XML文件并获取节点的子集,删除了某些属性。
我尝试过的一个示例:
def xml = """<root>
<record class="test">Some text
<foo id="something">Foo</foo>
</record>
<record>Some other text</record>
</root>"""
def root = new XmlSlurper().parseText(xml)
def record = root.record.find{ it.@class=='test'}
println new StreamingMarkupBuilder().bindNode(record)
// Output:
// <record class='test'>Some text
// <foo id='something'>Foo</foo></record>
def rec = record.foo.each { p -> p.attributes().remove('id') }
println rec
println new StreamingMarkupBuilder().bindNode(rec)
// Output:
// <foo>Foo</foo>
我想得到什么:
// <record class='test'>Some text
// <foo>Foo</foo></record>
如何在不提取子节点的情况下从“记录”的子节点中删除“id”?
答案 0 :(得分:0)
你需要:
println new StreamingMarkupBuilder().bindNode(record)
将rec
设置为each
的结果,将其设置为record.foo,而我相信您想要记录