tags:

views:

119

answers:

3

Hi does anyone know hwo to remove an attrbute using xpath. In particular the rel attribute and its text from a link. i.e. <a href='http://google.com' rel='some text'>Link</a> and i want to remove rel='some text'.

There will be multiple links in the html i am parsing.

+3  A: 

You can select items using xpath, but that's all it can do - it is a query language.

You need to use XSLT or an XML parser in order to remove attributes/elements.

Oded
A: 

As pointed out by Oded, Xpath merely identifies XML nodes. To remove/edit XML, you need some additional tooling.

One solution is the Ant-based plugin XMLTask (disclaimer - I wrote this). It provides a simple mechanism to read an XML file, identify parts of that using XPath, and change it (including removing nodes).

e.g.

<remove path="web/servlet/context[@id='redundant']"/>
Brian Agnew
A: 

Have you already tried using Javascript for this If that is applicable in your scenario:-

var allLinks=document.getElementsByTagName("a");

for(i=0;i<allLinks.length;i++)
{
allLinks[i].removeAttribute("rel");
}
ydobonmai