XML file paser sample

//从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);
  }

你可能感兴趣的:(xml)