//从XML文件中读取信息,并写入fw.
private void processFile(File file, FileWriter fw) throws Exception { String sObject = ""; String dObject = ""; String sCondition = ""; String dCondition = ""; String sCardinality = ""; String dCardinality = ""; boolean isSourceFound = false; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(file); doc.getDocumentElement().normalize(); System.out.println("Root element " + doc.getDocumentElement().getNodeName()); String aoName = doc.getDocumentElement().getAttribute("Name"); System.out.println(aoName); NodeList nodeLst = doc.getElementsByTagName("AssociationEnd"); for (int s = 0; s < nodeLst.getLength(); s++) { Node fstNode = nodeLst.item(s); if (fstNode.getNodeType() == Node.ELEMENT_NODE) { Element fstElmnt = (Element)fstNode; String eo = fstElmnt.getAttribute("Name"); if (isSourceFound) { dObject = eo; } else { sObject = eo; } String cardinality = fstElmnt.getAttribute("Cardinality"); if (cardinality.equals("-1")) { cardinality = "*"; } if (isSourceFound) { dCardinality = cardinality; } else { sCardinality = cardinality; } NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("AttrArray"); Element attElmnt = (Element)fstNmElmntLst.item(0); NodeList itemNodes = attElmnt.getElementsByTagName("Item"); Element itemElmnt = (Element)itemNodes.item(0); String condition = itemElmnt.getAttribute("Value"); if (isSourceFound) { dCondition = condition; } else { sCondition = condition; } isSourceFound = !isSourceFound; } } String Cardinality = sCardinality + "..." + dCardinality; String joinCondion = sCondition + "=" + dCondition; String outString = aoName + "\t" + sObject + "\t" + dObject + "\t" + Cardinality + "\t" + joinCondion + "\t" + "Y" + "\n"; System.out.println(outString); fw.write(outString); }