我在ERB中创建了一个
XML模板.我在导出过程中用数据库中的数据填充它.
在某些情况下,有一个空值,在这种情况下元素可能为空,如下所示:
<someitem> </someitem>
<someitem/>
我试图看看如何让Nokogiri这样做,但我还没有看到它.有人知道如何使Nokogiri自动关闭空XML标签吗?
更新
正则表达式足以完成我上面指定的操作,但客户端现在也希望其子项全部为空的标记可以自动关闭.所以这:
<someitem> <subitem> </subitem> <subitem> </subitem> </someitem>
……也应该
<someitem/>
我认为这需要使用Nokogiri.
解决方法
搜索
<([^>]+)>\s*</\1>
并替换为
<\1/>
在Ruby中:
result = subject.gsub(/<([^>]+)>\s*<\/\1>/,'<\1/>')
说明:
< # Match opening bracket ( # Match and remember... [^>]+ # One or more characters except > ) # End of capturing group > # Match closing bracket \s* # Match optional whitespace & newlines < # Match opening bracket / # Match / \1 # Match the contents of the opening tag > # Match closing bracket
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。