0

Java オブジェクトを XML オブジェクトに変換し、それをサーバーからクライアント ブラウザーに送信する必要があります。

そして、クライアント ブラウザで、取得した XML オブジェクトを DOM/SAX などを使用して解析し、UI に表示する必要があります。

上記に当てはまるのはどれ?それらのいずれかがこれで私を助けることができますか?

4

3 に答える 3

2

問題にはJAXB API を使用できます。JAXB (Java Architecture for XML Binding) は、アノテーションを使用して Java オブジェクトを XML コンテンツとの間で変換します。JAXB は次の目的を解決します。

マーシャリング– Java オブジェクトを XML コンテンツに変換します。

アンマーシャリング– XML コンテンツを Java オブジェクトに変換します。

ここで JAXB の簡単な例を見つけることができます。

于 2012-09-28T06:24:59.387 に答える
1

以下は、JAVA クラスが JAXB を使用して JAVA オブジェクトを XML コンテンツに変換するサンプルです。

import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;

class JavaToXMLContent {
    public static void main(String[] args) throws Throwable {
        // =============================================================================================================
        // Setup JAXB
        // =============================================================================================================

        // Create a JAXB context passing in the class of the object we want to marshal/unmarshal
        final JAXBContext context = JAXBContext.newInstance(JavaObject.class);

        // =============================================================================================================
        // Marshalling OBJECT to XML
        // =============================================================================================================

        // Create the marshaller, this is the nifty little thing that will actually transform the object into XML
        final Marshaller marshaller = context.createMarshaller();

        // Create a stringWriter to hold the XML
        final StringWriter stringWriter = new StringWriter();

        // Create the sample object we wish to transform into XML
        final JavaObject javaObject = new JavaObject();
        javaObject.setName("Json");
        javaObject.setRole("Moderator");
        javaObject.setAge(28);

        // Marshal the javaObject and write the XML to the stringWriter
        marshaller.marshal(javaObject, stringWriter);

        // Print out the contents of the stringWriter
        System.out.println(stringWriter.toString());

        // =============================================================================================================
        // Unmarshalling XML to OBJECT
        // =============================================================================================================

        // Create the unmarshaller, this is the nifty little thing that will actually transform the XML back into an object
        final Unmarshaller unmarshaller = context.createUnmarshaller();

        // Unmarshal the XML in the stringWriter back into an object
        final JavaObject javaObject2 = (JavaObject) unmarshaller.unmarshal(new StringReader(stringWriter.toString()));

        // Print out the contents of the JavaObject we just unmarshalled from the XML
        System.out.println(javaObject2.toString());
    }

    /**
     * JavaObject is the sample object we've created to use for marshalling to and from XML.
     * Make sure you have the @XmlRootElement annotation at the top there as well or JAXB
     * might moan.
     */
    @XmlRootElement
    private static class JavaObject {

        private String name;

        private String role;

        private int age;

        public JavaObject() {

        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getRole() {
            return role;
        }

        public void setRole(String role) {
            this.role = role;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        @Override
        public String toString() {
            return "Name [" + this.name + "], Role [" + this.role + "], Age [" + this.age + "]";
        }
    }
}

これがあなたを助けることを願っています。

于 2012-09-28T06:44:38.817 に答える
0

simplexmlを見てください。xmlフィールドと Java フィールドの間のマッピングに注釈を使用しているため、非常に便利です。

于 2012-09-28T06:20:31.003 に答える