📄 ex8_42.txt
字号:
Example 8.42 JavaBinder Class
import generated.Item;
import generated.PurchaseOrder;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
import java.util.Iterator;
import java.util.List;
public class JavaBinder {
public JavaBinder() {
}
private Object parse(String xmlDocument) {
Object o = null;
try {
JAXBContext jc =
JAXBContext.newInstance("generated");
Unmarshaller u = jc.createUnmarshaller();
o = u.unmarshal(new StreamSource(
new StringReader(xmlDocument)));
} catch (JAXBException e) {
}
return o;
}
public void routeDocument(String xmlDocument) {
Object o = parse(xmlDocument);
if (o instanceof PurchaseOrder) {
PurchaseOrder po = (PurchaseOrder) o;
printIt(po);
PurchaseOrderWebBroker broker =
new PurchaseOrderWebBroker();
broker.placeOrder(po);
}
}
private void printIt(PurchaseOrder po) {
System.out.println(po.getBillTo());
System.out.println(po.getShipTo());
System.out.println(po.getOrderDate());
List items = po.getItems();
Iterator i = items.iterator();
while (i.hasNext()) {
Item item = (Item) i.next();
System.out.println("Id : " + item.getId() +
" Name : " + item.getName() +
" Price : " + item.getPrice());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -