我怎样才能生成这样的文件:
Books/Jungle_Book
Books/Alice_in_Wonderland
Foods/Bacon
Foods/Kale
Foods/Eggs
来自下面的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.man.com/2006/04/metadata">
<types>
<members>Jungle_Book</members>
<members>Alice_in_Wonderland</members>
<name>Books</name>
</types>
<types>
<members>Bacon</members>
<members>Kale</members>
<members>Eggs</members>
<name>Foods</name>
</types>
<version>19.0</version>
</Package>
像<name>
这样的标签数量和 <members>
从一个 xml 到另一个 xml,就像这样
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.man.com/2006/04/metadata">
<types>
<members>Jungle_Book</members>
<members>Alice_in_Wonderland</members>
<name>Books</name>
</types>
<types>
<members>Bacon</members>
<members>Kale</members>
<members>Eggs</members>
<name>Foods</name>
</types>
<types>
<members>USA</members>
<members>UK</members>
<members>Ireland</members>
<members>Japan</members>
<name>Countries</name>
</types>
<version>19.0</version>
</Package>
最佳答案
rexml来自 ruby STLib 的模块可能对您有所帮助。
下面的片段,
require 'rexml/document'
include REXML
xmlfile = File.new("document.xml")
xmldoc = Document.new(xmlfile)
xmldoc.elements.each("Package/types") { |t|
t.elements.each("name") { |n|
t.elements.each("members") {
|m| puts "#{n.text}/#{m.text}"
}
}
}
生成类似的输出,
Books/Jungle_Book
Books/Alice_in_Wonderland
Foods/Bacon
Foods/Kale
Foods/Eggs
Countries/USA
Countries/UK
Countries/Ireland
Countries/Japan
关于ruby - 使用Ruby解析xml内容并生成文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49946945/