Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以标准格式打印XML元素_Java_Xml_Dom_Xpath - Fatal编程技术网

Java 以标准格式打印XML元素

Java 以标准格式打印XML元素,java,xml,dom,xpath,Java,Xml,Dom,Xpath,我正在Java中使用dom解析器 <Countries> <Country name="USA" states="50"/> <Country name="UK" states="4"/> </Countries> 对于上面给出的xml,如果我有USA元素节点,我想打印为国家[@name=“USA”][@states=“50”] 有没有一个简单的方法来完成这件事?或者我必须编写自定义方法?如果使用DOM解析器,可能需要编写自定义方法来实现上述

我正在Java中使用dom解析器

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

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


有没有一个简单的方法来完成这件事?或者我必须编写自定义方法?

如果使用DOM解析器,可能需要编写自定义方法来实现上述功能

如果使用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();
    }
}
希望这对你有帮助