Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 JAXB元素映射_Java_Jaxb - Fatal编程技术网

Java JAXB元素映射

Java JAXB元素映射,java,jaxb,Java,Jaxb,我有一个类似于以下内容的xml: <alpha> <beta> <theta>abcd</theta> </beta> </alpha> 我有什么办法可以做到这一点吗?我正在使用JDK1.6附带的jaxb。注意:我是该专家组的负责人和成员 使用任何JAXB JSR-222实现 使用任何JAXB JSR-222实现,您都可

我有一个类似于以下内容的xml:

    <alpha>
            <beta>
                    <theta>abcd</theta>
            </beta>
    </alpha>
我有什么办法可以做到这一点吗?我正在使用JDK1.6附带的jaxb。注意:我是该专家组的负责人和成员

使用任何JAXB JSR-222实现

使用任何JAXB JSR-222实现,您都可以使用XmlAdapter映射此用例

音频适配器

演示

input.xml/Output

更多信息

注:我是专家组的负责人和成员

使用任何JAXB JSR-222实现

使用任何JAXB JSR-222实现,您都可以使用XmlAdapter映射此用例

音频适配器

演示

input.xml/Output

更多信息

@XmlRootElement(name = "alpha")
public class MyBean {
    private String thetaValue;

    public String getThetaValue() {
        return this.thetaValue;
    }

    public void setThetaValue(String thetaValue) {
        this.thetaValue= thetaValue;
    }
}
package forum9799081;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class ThetaValueAdapter extends XmlAdapter<ThetaValueAdapter.Beta, String> {

    @Override
    public Beta marshal(String string) throws Exception {
        Beta beta = new Beta();
        beta.theta = string;
        return beta;
    }

    @Override
    public String unmarshal(Beta beta) throws Exception {
        return beta.theta;
    }

    public static class Beta {
        public String theta;
    }

}
package forum9799081;

import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

@XmlRootElement(name = "alpha")
public class MyBean {
    private String thetaValue;

    @XmlElement(name="beta")
    @XmlJavaTypeAdapter(ThetaValueAdapter.class)
    public String getThetaValue() {
        return this.thetaValue;
    }

    public void setThetaValue(String thetaValue) {
        this.thetaValue = thetaValue;
    }

}
package forum9799081;

import java.io.File;
import javax.xml.bind.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(MyBean.class);

        File xml = new File("src/forum9799081/input.xml");
        Unmarshaller unmarshaller = jc.createUnmarshaller();
        MyBean myBean = (MyBean) unmarshaller.unmarshal(xml);

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(myBean, System.out);
    }

}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<alpha>
    <beta>
        <theta>abcd</theta>
    </beta>
</alpha>
package forum9799081;

import javax.xml.bind.annotation.*;
import org.eclipse.persistence.oxm.annotations.XmlPath;

@XmlRootElement(name = "alpha")
public class MyBean {
    private String thetaValue;

    @XmlPath("beta/theta/text()")
    public String getThetaValue() {
        return this.thetaValue;
    }

    public void setThetaValue(String thetaValue) {
        this.thetaValue = thetaValue;
    }

}