anchor.diff:  get_path_s(El, [cdata]) -> get_tag_cdata(El).
   
   %%
  --spec(replace_tag_attr/3 ::
  -(
  -  Name  :: binary(),
  -  Value :: binary(),
  -  Xmlel :: xmlel())
  -    -> Xmlel :: #xmlel{
  -           name     :: binary(),
  -           attrs    :: [attr(),...],
  -           children :: [xmlel() | cdata()]
  -       }
  -).
  +-spec replace_tag_attr(Name :: binary(), Value :: binary(),
  +		       Xmlel :: xmlel()) -> 
  +			      Xmlel :: #xmlel{ name :: binary(),
  +					       attrs :: [attr(),...],
  +					       children :: [xmlel() | cdata()] }.
   
   replace_tag_attr(Name, Value, Xmlel) ->
       Xmlel#xmlel{
  
positive.code:     end.
  
  %%
  -spec(get_tag_attr/2 ::
  (
    AttrName :: binary(),
    Xmlel    :: xmlel())
      -> {value, binary()}
       | false
  ).
  
  get_tag_attr(AttrName, #xmlel{attrs = Attrs}) ->
      get_attr(AttrName, Attrs).
  
  %%
  -spec(get_tag_attr_s/2 ::
  (
    AttrName :: binary(),
    Xmlel    :: xmlel())
      -> binary()
  ).
  
  get_tag_attr_s(AttrName, #xmlel{attrs = Attrs}) ->
      get_attr_s(AttrName, Attrs).
  
  %%
  -spec(get_subtag/2 ::
  (
    Xmlel :: xmlel(),
    Name  :: binary())
      -> xmlel() | false
  ).
  
  get_subtag(#xmlel{children = Els}, Name) ->
      get_subtag1(Els, Name).
  
  %%
  -spec(get_subtag1/2 ::
  (
    Els  :: [xmlel() | cdata()],
    Name :: binary())
      -> xmlel() | false
  ).
  
  get_subtag1( [El | Els], Name) ->
      case El of
  
negative.code:     end.
  
  %%
  -spec append_subtags(Xmlel :: xmlel(), SubTags2 :: [xmlel() | cdata()]) ->
  			    Xmlel :: xmlel().
  
  append_subtags(#xmlel{name = Name, attrs = Attrs, children = SubTags1}, SubTags2) ->
      #xmlel{name = Name, attrs = Attrs, children = SubTags1 ++ SubTags2}.
  
  %%
  -spec get_path_s(El :: xmlel(), Path :: [{elem, Name::binary()} |
  					 {attr, Name::binary()} |cdata]) ->
  			xmlel() | binary().
  
  get_path_s(El, []) -> El;
  get_path_s(El, [{elem, Name} | Path]) ->
  