<hash> 从"to_xml"中删除作为根的标记



我正在尝试将哈希转换为xml。所以,我正在使用Hash.to_xml.但是,它添加为<hash>标签作为根

一个简单的例子:

> {a: "1", b: {c: "2"}}.to_xml

<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <d>
    <a>1</a>
    <b>
      <c>2</c>
    </b>
  </d>
</hash>

但是,我不希望将<hash>标签作为根。

DOC说,它可以通过root进行配置。所以,我试过了

{d: {a: "1", b: {c: "2"}}}.to_xml(root: "")

但是,这给出了一个空<>而不是<hash>

注意:在我的实际哈希中,我总是有一个根密钥。就像在上面的例子中,我把它作为d。但是,我不知道它是动态的

好的,我知道了。由于我总是有一个根密钥,我可以像这样做:

hash = {d: {a: "1", b: {c: "2"}}}
root = hash.keys.first
xml = hash[root].to_xml(root: root)

它将输出:

<?xml version="1.0" encoding="UTF-8"?>
<d>
  <a>1</a>
  <b>
    <c>2</c>
  </b>
</d>

它看起来不太好,但是

h = {d: {a: "1", b: {c: "2"}}}
h[h.keys.first].to_xml(root: h.keys.first)
<?xml version="1.0" encoding="UTF-8"?>
<d>
    <a>1</a>
    <b>
        <c>2</c>
    </b>
</d>

最新更新