2013-11-21 9 views
0

저는 자바 초보자이고 프로그래밍 초보자이며 DOM-Parser를 구현하려고합니다. 내 문제 : 파서에 파일을 읽는 방법을 모르겠습니다. 나는 IBM 파서를 DOM과 함께 사용하려고했다.파서 - 파일을 읽는 방법은 무엇입니까?

package domparser; 
import org.w3c.dom.*; 
import com.ibm.xml.parsers.*; 

public class domparser 
{ 
public static void main(String[] args) 
{ 
    domparser MyParser = new domparser(); 
    MyParser.parse(args[0]); 
} 

private void parse(String file) 
{ 
    NonValidatingDOMParser parser = new NonValidatingDOMParser(); 
    try 
    { 
     parser.parse(file); 
     writeDoc(parser.getDocument().getDocumentElement()); 
    } 
    catch (Exception e) 
    { 
     System.err.println("Fehler: " + e); 
    } 
} 

private void writeDoc(Node node) 
{ 
    short type = node.getNodeType(); 
    switch (type) 
    { 
     case Node.ELEMENT_NODE: 
     { 
      String name = "<" + node.getNodeName(); 
      NamedNodeMap attrs = node.getAttributes(); 
      if (attrs != null) 
      { 
       int length = attrs.getLength(); 
       for (int i = 0; i < length; i++) 
       { 
        Node attr = attrs.item(i); 
        name += " " + attr.getNodeName(); 
        name += "=\"" + attr.getNodeValue() + "\""; 
       } 
      } 
      name += ">"; 
      System.out.println(name); 

      NodeList children = node.getChildNodes(); 
      if (children != null) 
      { 
       int length = children.getLength(); 
       for (int i = 0; i < length; i++) 
        writeDoc(children.item(i)); 
      } 
      break; 
     } 
     case Node.TEXT_NODE: 
     { 
      System.out.println(node.getNodeValue()); 
      break; 
     } 
    } 
} 
} 

고맙습니다!

+0

많은 코드를 게시했지만 코드에서 실제로 발생하는 문제를 지정하지 않았습니다. 신원 미상의 자리에 오류가 있습니까? -> 그들에게 – LionC

+0

을 게시하여 XML 파일도 올리십시오. – Amador

답변

1
File xmlFile = new File("xmlFiles/type.xml"); 
    DocumentBuilderFactory documentFactory = DocumentBuilderFactory 
    .newInstance(); 
    DocumentBuilder documentBuilder = documentFactory 
    .newDocumentBuilder(); 
    Document doc = documentBuilder.parse(xmlFile); 

    doc.getDocumentElement().normalize(); 
    NodeList nodeList = doc.getElementsByTagName("type"); 

    System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); 

그런 다음 루프 및 인쇄가 XML 파일에 의존해야한다, 이것은 정확히 당신을 위해 .... DoucmentBuilderFactory 자바에서 XML 파일을 읽을 수있는 간단한 방법은 단지 예이다.

관련 문제