/** * 由String对象,创建一个结果向量Vector * * @return a Vector */
public Vector getNameByString(String text){ Vector result=new Vector(); Document doc=parseXMLDocument(text); Element root = doc.getDocumentElement(); NodeList address = root.getElementsByTagName("ADDRESS"); for(int i = 0; i < address.getLength(); i++){ Element record = (Element) address.item(i); String districtName=getStringByTag(record,"DISTRICTNAME"); String belongName=getStringByTag(record,"BELONGNAME"); String serviceName=getStringByTag(record,"SERVICE"); String layerName=getStringByTag(record,"LAYER"); String typeName=getStringByTag(record,"TYPE"); String remarkContent=getStringByTag(record,"REMARK"); PlaceNameRecord bean=new PlaceNameRecord(districtName,belongName,serviceName,layerName,typeName,remarkContent); result.addElement(bean); } return result; }
/** * 由Element对象和相应的标签String,返回对应标签的内容 * * @return a String */ private String getStringByTag(Element record,String text){ String result=null; NodeList node = record.getElementsByTagName(text); if (node.getLength() == 1) { Element e = (Element) node.item(0); Text t = (Text) e.getFirstChild(); result=t.getNodeValue(); } return result; }
/** * 由String对象,初始化一个Document * * @return a Document */ public static Document parseXMLDocument(String xmlString) { if (xmlString == null) { throw new IllegalArgumentException(); } try { return newDocumentBuilder().parse( new InputSource(new StringReader(xmlString))); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } }
/** * 初始化一个DocumentBuilder * * @return a DocumentBuilder * @throws ParserConfigurationException */ public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException { return newDocumentBuilderFactory().newDocumentBuilder(); }
/** * 初始化一个DocumentBuilderFactory * * @return a DocumentBuilderFactory */ public static DocumentBuilderFactory newDocumentBuilderFactory() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); return dbf; }