View Javadoc

1   /*
2    * Copyright 1999-2004 The Apache Software Foundation
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.commons.jxpath.xml;
17  
18  import java.io.InputStream;
19  
20  import javax.xml.parsers.DocumentBuilderFactory;
21  
22  import org.apache.commons.jxpath.JXPathException;
23  
24  /***
25   * An implementation of the XMLParser interface that produces a DOM Document.
26   *
27   * @author Dmitri Plotnikov
28   * @version $Revision: 1.6 $ $Date: 2004/02/29 14:17:37 $
29   */
30  public class DOMParser extends XMLParser2 {
31  
32      public Object parseXML(InputStream stream) {
33          try {
34              DocumentBuilderFactory factory =
35                      DocumentBuilderFactory.newInstance();
36              
37              factory.setValidating(isValidating());
38              factory.setNamespaceAware(isNamespaceAware());
39              factory.setIgnoringElementContentWhitespace(
40                      isIgnoringElementContentWhitespace());
41              factory.setExpandEntityReferences(isExpandEntityReferences());
42              factory.setIgnoringComments(isIgnoringComments());
43              factory.setCoalescing(isCoalescing());
44              return factory.newDocumentBuilder().parse(stream);
45          }
46          catch (Exception ex) {
47              throw new JXPathException("DOM parser error", ex);
48          }
49      }
50  }