使用JAXb将XML打印到Eclipse控制台的Java

使用JAXb将XML打印到Eclipse控制台的Java,java,printing,jaxb,Java,Printing,Jaxb,在使用JAXb解析XML文件后,如何将其打印到控制台。XML有一个根级别,然后有一系列不同的表结构 公共类外部导入{ public static void main(String[] args) { try { // create JAXB context and initializing Marshaller JAXBContext jaxbContext = JAXBContext.newInstance(ServiceModel.class);

在使用JAXb解析XML文件后,如何将其打印到控制台。XML有一个根级别,然后有一系列不同的表结构

公共类外部导入{

public static void main(String[] args) {

    try {
        // create JAXB context and initializing Marshaller

        JAXBContext jaxbContext = JAXBContext.newInstance(ServiceModel.class);
        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

        // specify the location and name of xml file to be read
        File XMLfile = new File(
                "C:\\Users\\Data.xml");

        ServiceModel model = (ServiceModel) jaxbUnmarshaller.unmarshal(XMLfile);
        System.out.println(model);
XML结构(示例代码)


12
str1234
str1234
str1234
我正试图找到一种方法,用一行或两行代码在控制台上全部打印出来。否则,写50到60行打印语句是一件乏味的工作

这就是我在控制台上得到的全部信息


com.group.project.serviceModelTools。ServiceModel@77396f71

此方法将任何POJO java类序列化为格式化的xml字符串:

    public String serialize( Object aMessageDto) throws Exception
    {
        JAXBContext jaxbContext = JAXBContext.newInstance( aMessageDto.getClass());
        Marshaller marshaller = jaxbContext.createMarshaller();
        marshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.setProperty( Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, SCHEMA_FILE);
        StringWriter sw = new StringWriter();
        marshaller.marshal( aMessageDto, sw);
        return sw.toString();
    }
就叫它:

    System.out.println( serialize( myObj)); 

Jaxb从xml填充Java类…如果你想打印xml,只需从文件中读取,这里不需要Jaxb。如果你想打印对象的内容,那么你必须在类中实现toString方法。你的IDE应该提供生成此方法的功能。我刚刚使用了toString,它给了我成功的结果公共字符串toString(){values return}
    System.out.println( serialize( myObj));