有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何解析只有根元素的XML

我需要对一个类进行注释,以便对XML进行如下解组:

<element>data</element>

我不知道怎么做,因为类必须用@XmlRootElement注释,但我需要得到根元素的值。我知道这不管用,但我就是这么做的:

@XmlRootElement(name = "element")
public Class MyClass{

@XmlElement(name = "element")
protected String elementValue;
public String getElementValue(){...}
public void setElementValue(String el){...}

有可能得到这个吗


共 (1) 个答案

  1. # 1 楼答案

    您正在寻找@XmlValue注释

    MyClass

    package forum13626828;
    
    import javax.xml.bind.annotation.*;
    
    @XmlRootElement(name = "element")
    public class MyClass{
    
        protected String elementValue;
    
        @XmlValue
        public String getElementValue() {
            return elementValue;
        }
    
        public void setElementValue(String el) {
            this.elementValue = el;
        }
    
    }
    

    演示

    package forum13626828;
    
    import java.io.StringReader;
    import javax.xml.bind.*;
    
    public class Demo {
    
        public static void main(String[] args) throws Exception {
            JAXBContext jc = JAXBContext.newInstance(MyClass.class);
    
            Unmarshaller unmarshaller = jc.createUnmarshaller();
            StringReader xml = new StringReader("<element>data</element>");
            MyClass myClass = (MyClass) unmarshaller.unmarshal(xml);
    
            Marshaller marshaller = jc.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            marshaller.marshal(myClass, System.out);
        }
    
    }
    

    输出

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <element>data</element>