public void testDetachAttribute() throws Exception {
List attributes = document.selectNodes("//@name");
assertTrue("Found more than one attribute: ", attributes.size() > 0);
for (Iterator iter = attributes.iterator(); iter.hasNext();) {
Attribute attribute = (Attribute) iter.next();
Element element = attribute.getParent();
assertTrue("Attribute: " + attribute + " has parent: " + element,
attribute.getParent() == element);
QName qname = attribute.getQName();
Attribute attribute2 = element.attribute(qname);
String value = attribute.getValue();
String value2 = element.attributeValue(qname);
assertEquals("Attribute and Element have same attrbute value",
value, value2);
attribute.detach();
attribute2 = element.attribute(qname);
value2 = element.attributeValue(qname);
assertTrue("Element now has no value: " + value2, value2 == null);
assertTrue("Element now has no attribute: " + attribute2,
attribute2 == null);
}
}
|