gpt4 book ai didi

ruby-on-rails - 如果 XML 映射是根元素,则无法加载数组

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

我在我的 ruby​​ on rails 应用程序中使用 xml 映射。

我需要加载 xml 文件并使用 xml 映射将它们解析为对象

xml示例在这里

<?xml version="1.0" encoding="UTF-8"?>
<elements type="array">
<element></element>
<element></element>
...
</elements>

这是 ruby 代码

require 'xml/mapping'

class Macro; end

class Elements
include XML::Mapping

array_node :elements, "elements","element" :class => Element
end

class Element
include XML::Mapping

text_node :name, "name"
text_node :description, "description"
end

问题是当我使用 Elements.load_from_file("my.xml") 时它不会加载数组,但是如果我将根节点添加到 xml 它会起作用。

这个 xml 有效

<?xml version="1.0" encoding="UTF-8"?>
<mynode>
<elements type="array">
<element></element>
<element></element>
...
</elements>
<mynode>

有人知道如何解决这个问题吗?

最佳答案

(我是 xml 映射的作者)

XPath 表达式始终相对于映射类在 XML 树中的基节点,即“Elements”类的“elements”元素。因此,您不得在 Elements 节点的 XPath 表达式中包含该名称。把它去掉,代码应该可以工作:

class Elements
include XML::Mapping

array_node :elements, "element", :class => Element
end

关于ruby-on-rails - 如果 XML 映射是根元素,则无法加载数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533869/

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