Re: modifying attributes with JTidy

Austin Rosenfeld wrote:
> 
>  I am trying to use the JTidy libraries to modify a DOM tree, and
>  am not having much success.  I need to take attributes out of a node, but
> the
>  methods in org.w3c.tidy.DOMAttrImpl to do this are all stubbed out (and
> return null).
>  Here's the code I have been using:
>         //some desired transformations:
>       //<A VLINK="xxx">  --> <A>
>         //<HR NOSHADE> --> <HR>
>         NamedNodeMap    attributes  = node.getAttributes();
>         Node            toRemove    = null;
>         toRemove = attributes.getNamedItem( mAttribute.toUpperCase() );
>              if ( toRemove != null )
>              {
>                  toRemove.setNodeValue( "" ); //works, but I get
>                          //'element=""', where I want absolutely nothing
>                  attributes.removeNamedItem( mAttribute.toUpperCase() );
>                          //has no effect at all, regardless of what case I
> change mAttribute to
>              }

Austin --

The methods you are using are not implemented in the JTidy DOM support. 
Try

  ((Element) node).removeAttributeNode( toRemove );

-or-

You can eliminate the getNamedItem call altogether and do

  ((Element) node).removeAttribute( mAttribute.toUpperCase() );

Please let us know if these work for you.

Gary

Received on Wednesday, 29 November 2000 09:35:47 UTC