Flex通过request,把前台封装成的Xml传到后台,现在大致讲一下,在后台里javax是怎么解析String形式的Xml,将其转换成bean的,下面这个方法是我在做联系人管理时保存个人地址信息的方法,用红色标记的是得到一个节点中相应节点属性的值。
public void saveAddr(String address) {
System.out.println("在Cmd中,保存地址信息");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
StringReader sr = new StringReader(address);
InputSource is = new InputSource(sr);
Document doc = builder.parse(is);
List<ContactAddr> list = new ArrayList<ContactAddr>();
NodeList nodeList=doc.getElementsByTagName("address");
for(int i=0;i<nodeList.getLength();i++){
ContactAddr contactAddr=new ContactAddr();
if("邮箱".equals
(nodeList.item(i).getAttributes().getNamedItem("mode").getNodeValue()))
{
contactAddr.setDeliveryMode("1");
}else{
contactAddr.setDeliveryMode("0");
}
contactAddr.setDeliveryAddr
(nodeList.item(i).getAttributes().getNamedItem("addr").getNodeValue());
list.add(contactAddr);
}
service.updateContactAddr(list);
}catch(ParserConfigurationException e){
e.printStackTrace();
}catch (SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}