Class | HTree::Location |
In: |
htree/modules.rb
htree/loc.rb htree/extract_text.rb |
Parent: | Object |
node | -> | to_node |
index | [R] | |
node | [R] | |
parent | [R] |
loc_list returns an array containing from location‘s root to itself.
t = HTree('<a><b><c>') l = t.make_loc.get_subnode(0, 0, 0) pp l, l.loc_list # => #<HTree::Location: doc()/a/b/c> [#<HTree::Location: doc()>, #<HTree::Location: doc()/a>, #<HTree::Location: doc()/a/b>, #<HTree::Location: doc()/a/b/c>]
subst substitutes several subtrees at once.
t = HTree('<r><x/><y/><z/></r>') l = t.make_loc l2 = l.subst({ l.root.get_subnode('k') => 'v', l.root.get_subnode(-1) => HTree('<a/>'), l.find_element('y') => nil, l.find_element('z').get_subnode(0) => HTree('<b/>'), }) pp l2, l2.to_node # => #<HTree::Doc::Loc: doc()> #<HTree::Doc {elem <r k="v"> {emptyelem <a>} {emptyelem <x>} {elem <z> {emptyelem <b>}}}>
subst_itself substitutes the node pointed by the location. It returns the location of substituted node.
t1 = HTree('<a><b><c><d>') p t1 l1 = t1.make_loc.get_subnode(0, 0, 0, 0) p l1 l2 = l1.subst_itself(HTree('<z/>')) p l2 t2 = l2.top.to_node p t2 # => #<HTree::Doc {elem <a> {elem <b> {elem <c> {emptyelem <d>}}}}> #<HTree::Location: doc()/a/b/c/d> #<HTree::Location: doc()/a/b/c/z> #<HTree::Doc {elem <a> {elem <b> {elem <c> {emptyelem <z>}}}}>