11.10 Map
This commit is contained in:
72
xml/Person.java
Normal file
72
xml/Person.java
Normal file
@@ -0,0 +1,72 @@
|
||||
//: xml/Person.java
|
||||
// Use the XOM library to write and read XML
|
||||
// {Requires: nu.xom.Node; You must install
|
||||
// the XOM library from http://www.xom.nu }
|
||||
import nu.xom.*;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
public class Person {
|
||||
private String first, last;
|
||||
public Person(String first, String last) {
|
||||
this.first = first;
|
||||
this.last = last;
|
||||
}
|
||||
// Produce an XML Element from this Person object:
|
||||
public Element getXML() {
|
||||
Element person = new Element("person");
|
||||
Element firstName = new Element("first");
|
||||
firstName.appendChild(first);
|
||||
Element lastName = new Element("last");
|
||||
lastName.appendChild(last);
|
||||
person.appendChild(firstName);
|
||||
person.appendChild(lastName);
|
||||
return person;
|
||||
}
|
||||
// Constructor to restore a Person from an XML Element:
|
||||
public Person(Element person) {
|
||||
first= person.getFirstChildElement("first").getValue();
|
||||
last = person.getFirstChildElement("last").getValue();
|
||||
}
|
||||
public String toString() { return first + " " + last; }
|
||||
// Make it human-readable:
|
||||
public static void
|
||||
format(OutputStream os, Document doc) throws Exception {
|
||||
Serializer serializer= new Serializer(os,"ISO-8859-1");
|
||||
serializer.setIndent(4);
|
||||
serializer.setMaxLength(60);
|
||||
serializer.write(doc);
|
||||
serializer.flush();
|
||||
}
|
||||
public static void main(String[] args) throws Exception {
|
||||
List<Person> people = Arrays.asList(
|
||||
new Person("Dr. Bunsen", "Honeydew"),
|
||||
new Person("Gonzo", "The Great"),
|
||||
new Person("Phillip J.", "Fry"));
|
||||
System.out.println(people);
|
||||
Element root = new Element("people");
|
||||
for(Person p : people)
|
||||
root.appendChild(p.getXML());
|
||||
Document doc = new Document(root);
|
||||
format(System.out, doc);
|
||||
format(new BufferedOutputStream(new FileOutputStream(
|
||||
"People.xml")), doc);
|
||||
}
|
||||
} /* Output:
|
||||
[Dr. Bunsen Honeydew, Gonzo The Great, Phillip J. Fry]
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<people>
|
||||
<person>
|
||||
<first>Dr. Bunsen</first>
|
||||
<last>Honeydew</last>
|
||||
</person>
|
||||
<person>
|
||||
<first>Gonzo</first>
|
||||
<last>The Great</last>
|
||||
</person>
|
||||
<person>
|
||||
<first>Phillip J.</first>
|
||||
<last>Fry</last>
|
||||
</person>
|
||||
</people>
|
||||
*///:~
|
||||
Reference in New Issue
Block a user