【发布时间】:2014-05-13 18:43:33
【问题描述】:
我试图从这个 XML 中检索两小段信息。 id (choice_xxxxxx) 和 description (true/false):
<choices>
<component>
<id>choice_6WFRvQrXAN7</id>
<description lang="und">True</description>
</component>
<component>
<id>choice_5xBWm5NQRkA</id>
<description lang="und">False</description>
</component>
</choices>
但是因为我是在 Nokogiri 中解析这个,所以返回的信息是这样的:
=> 0;34#(Element:0x3feeeb4301b0 {
name = "choices",
namespace = 0;34#(Namespace:0x3feeeb6f1fac {
href = "http://website.myxml.xsd"
}),
children = [
0;34#(Text "\n\t\t\t\t"),
0;34#(Element:0x3feeea7e36b4 {
name = "component",
namespace = 0;34#(Namespace:0x3feeeb6f1fac {
href = "http://website.myxml.xsd"
}),
children = [
0;34#(Text "\n\t\t\t\t\t"),
0;34#(Element:0x3feeea7e624c {
name = "id",
namespace = 0;34#(Namespace:0x3feeeb6f1fac {
href = "http://website.myxml.xsd"
}),
children = [ 0;34#(Text "choice_6WFRvQrXAN7")]
}),
0;34#(Text "\n\t\t\t\t\t"),
0;34#(Element:0x3feeea7e4a50 {
name = "description",
namespace = 0;34#(Namespace:0x3feeeb6f1fac {
href = "http://website.myxml.xsd"
}),
attributes = [
0;34#(Attr:0x3feeea7e86c8 { name = "lang", value = "und" })],
children = [ 0;34#(Text "True")]
}),
0;34#(Text "\n\t\t\t\t")]
}),
0;34#(Text "\n\t\t\t\t"),
0;34#(Element:0x3feeea7ea34c {
name = "component",
namespace = 0;34#(Namespace:0x3feeeb6f1fac {
href = "http://website.myxml.xsd"
}),
children = [
0;34#(Text "\n\t\t\t\t\t"),
0;34#(Element:0x3feeea7e8f88 {
name = "id",
namespace = 0;34#(Namespace:0x3feeeb6f1fac {
href = "http://website.myxml.xsd"
}),
children = [ 0;34#(Text "choice_5xBWm5NQRkA")]
}),
0;34#(Text "\n\t\t\t\t\t"),
0;34#(Element:0x3feeea7eb738 {
name = "description",
namespace = 0;34#(Namespace:0x3feeeb6f1fac {
href = "http://website.myxml.xsd"
}),
attributes = [
0;34#(Attr:0x3feeea7eb3f0 { name = "lang", value = "und" })],
children = [ 0;34#(Text "False")]
}),
0;34#(Text "\n\t\t\t\t")]
}),
0;34#(Text "\n\t\t\t")]
})
从这个 Nokogiri::XML::Nodeset 中提取这两个变量的最优雅的方法是什么?
【问题讨论】:
标签: ruby-on-rails xml mapping nokogiri