REXMLでノードの階層構造を出力する

REXMLでノードの階層構造を出力する

出力例

html[xmlns=”http://www.w3.org/1999/xhtml”]
head[]
meta[content=”text/html; charset=UTF-8″,http-equiv=”Content-Type”]
title[]
body[]
h1[]
h2[]
div[]
form[name=”form1″,id=”form1″]
p[]
br[]
input[name=”textfield”,type=”text”]

ソースコード。

require ‘rexml/document’

# 要素を階層表示する
# element 要素
# level 階層レベル
def show_element(element, level)
# 空白
sp = ‘ ‘ * level
# 属性
attr = []
element.attributes.each do |name, value|
attr << "#{name}=\"#{value}\"" end # 出力 puts "#{sp}#{element.name}[#{attr.join(',')}]" # 子要素 element.each_element do |e| show_element(e, level + 1) end end if $0 == __FILE__ if ARGV.size < 1 puts "USAGE: ruby #{__FILE__} xmlfilepath" exit end doc = REXML::Document.new(File.new(ARGV[0])) show_element(doc.root, 0) end

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください