dom4j-java-如何更改属性的值

时间:2012-06-11 13:15:34

标签: java xml dom4j

在Java程序中,我正在使用dom4j处理xml。

现在,我想更新一个元素的属性。

这是我用来获取该元素的代码 -

     SAXReader reader = new SAXReader();
     doc = reader.read(new StringReader(xmlinput));

     Element root = doc.getRootElement();
    for ( Iterator i = root.elementIterator( "cloudwhile" ); i.hasNext(); ) {
            Element foo = (Element) i.next();

现在,我想更新元素'foo' -

的属性值

为此,我尝试使用以下代码 -

    foo.setAttributeValue("indexstart", (String) newstart );

然而,上述方法已弃用...如何立即更新属性?另外,我想在更新元素'foo'的属性后立即获取修改后的xml的字符串表示 - 我该怎么做?

2 个答案:

答案 0 :(得分:5)

JavaDoc说使用addAttribute(...)代替。该名称有些误导,因为它将取代现有属性的内容 - 等同于更新值。

  

添加给定完全限定名称的属性值。如果已存在给定名称的属性,则将替换该属性。静默忽略具有空值的属性。如果属性的值为null,则此方法调用将删除具有给定名称的任何属性。

答案 1 :(得分:1)