···
The above really is neither general nor elegant. Some depends on your
DTD, some on REXML.
In my perfect world something like that would work:
doc.each_element(“BOOK”) {|book| puts book.element(“AUTHOR”) if
“lala” == book.element(“TITLE”)}
In my perfect world, the whole thing would be solved with one short line
of code, and a nice XPath. Perhaps that’s possible with more recent
versions of REXML.
And it seems impossible to get the parent of an element.
.parent.
Do p element.methods:
[“whitespace”, “raw”, “add_attributes”, “each_element_with_text”,
“delete_elemen
t”, “delete_namespace”, “namespace”, “context”, “text=”, “write”,
“add_attribute
“, “next_element”, “prefixes”, “9409”, “root”, “context=”,
“has_attributes?”
, “get_text”, “get_elements”, “add_namespace”, “elements”, “add_text”,
“has_text
?”, “each_element_with_attribute”, “attributes”, “delete_attribute”,
“text”, “pr
evious_element”, “each_element”, “has_elements?”, “add_element”,
“9377”, “cl
one”, “name=”, “prefix=”, “expanded_name”, “local_name”, “has_name?”,
“fully_exp
anded_name”, “prefix”, “name”, “replace_child”, “delete_at”, “each”,
“size”, “in
sert_before”, “delete”, “add”, “to_a”, “insert_after”, “”, “push”,
“=”, “eac
h_child”, “each_index”, “<<”, “index”, “delete_if”, “unshift”, “min”,
“find_all”
, “entries”, “each_with_index”, “map”, “detect”, “include?”, “collect”,
“find”,
“member?”, “reject”, “grep”, “max”, “select”, “sort”,
“previous_sibling”, “next_
sibling”, “bytes”, “parent”, “previous_sibling=”, “next_sibling=”,
“document”, "
parent=”, “remove”, “replace_with”, “read_with_substitution”, “to_s”,
“previous_
sibling_node”, “write_with_substitution”, “indent”, “next_sibling_node”,
“==”, "
===”, “singleton_methods”, “tainted?”, “eql?”, “methods”, “dup”, “nil?”,
“is_a?”
, “method”, “instance_of?”, “class”, “instance_variables”, “send”,
“frozen?”, “_
id_”, “send”, “=~”, “hash”, “protected_methods”, “untaint”,
“respond_to?”,
“public_methods”, “taint”, “equal?”, “kind_of?”, “inspect”, “display”,
“instanc
e_eval”, “type”, “freeze”, “id”, “extend”, “private_methods”]
Tobi
–
http://www.pinkjuice.com/