Java オブジェクトを XML オブジェクトに変換し、それをサーバーからクライアント ブラウザーに送信する必要があります。
そして、クライアント ブラウザで、取得した XML オブジェクトを DOM/SAX などを使用して解析し、UI に表示する必要があります。
上記に当てはまるのはどれ?それらのいずれかがこれで私を助けることができますか?
Java オブジェクトを XML オブジェクトに変換し、それをサーバーからクライアント ブラウザーに送信する必要があります。
そして、クライアント ブラウザで、取得した XML オブジェクトを DOM/SAX などを使用して解析し、UI に表示する必要があります。
上記に当てはまるのはどれ?それらのいずれかがこれで私を助けることができますか?
問題にはJAXB API を使用できます。JAXB (Java Architecture for XML Binding) は、アノテーションを使用して Java オブジェクトを XML コンテンツとの間で変換します。JAXB は次の目的を解決します。
マーシャリング– Java オブジェクトを XML コンテンツに変換します。
アンマーシャリング– XML コンテンツを Java オブジェクトに変換します。
ここで JAXB の簡単な例を見つけることができます。
以下は、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 + "]";
}
}
}
これがあなたを助けることを願っています。
simplexmlを見てください。xmlフィールドと Java フィールドの間のマッピングに注釈を使用しているため、非常に便利です。