使用Ruby解析xml内容并生成文本文件
如何生成类似以下内容的文件:使用Ruby解析xml内容并生成文本文件,ruby,xml,Ruby,Xml,如何生成类似以下内容的文件: 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&g
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>
丛林之书
爱丽丝梦游仙境
书
培根
甘蓝
鸡蛋
食品
19
像
和
这样的标记的数量因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>
丛林之书
爱丽丝梦游仙境
书
培根
甘蓝
鸡蛋
食品
美国
英国
爱尔兰
日本
国家
19
来自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
使用Nokogiri是否不是一种选择?另外,当你说标签不同时,你是指标签名称还是标签值?更新了问题以使其更清楚我假设你指的是
和
标签的数量不同。如果
标记的数量不同,那么您也需要为此提供所需的输出。