1

我在 Java 中使用 dom 解析器。

<Countries>
<Country name="USA" states="50"/>
<Country name="UK" states="4"/>
</Countries>

对于上面给出的 xml,如果我有想要打印为Country[@name="USA"][@states="50"]的 USA 元素节点

有没有简单的方法来完成这项工作?或者我必须编写自定义方法?

4

1 回答 1

2

如果你使用 DOM parser ,你可能需要编写自定义方法来实现上述功能。

如果您使用 JAXB ,则可以通过覆盖 POJO 类的 toString 方法来完成上述功能。

@XmlRootElement
public class Countries {
    @XmlElement
    Country country;
}


import javax.xml.bind.annotation.XmlAttribute;

public class Country {

    @XmlAttribute
    private String name;
    @XmlAttribute
    private String states;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getStates() {
        return states;
     }
     public void setStates(String states) {
        this.states = states;
    }


    @Override
    public String toString() {

        return "Country[@name="+getName()+"][@states="+getStates();
    }
}

希望这对你有帮助!

于 2013-07-10T07:13:36.800 回答