4
4
import javax.xml.parsers.DocumentBuilderFactory;
5
5
import javax.xml.parsers.DocumentBuilder;
7
import org.w3c.dom.Document;
8
import org.w3c.dom.NamedNodeMap;
9
import org.w3c.dom.Node;
10
import org.w3c.dom.Text;
11
import java.lang.Float;
7
13
public class sun_dom2 extends bench {
9
DocumentBuilder parser;
10
DocumentBuilderFactory factory;
12
public void InitXML() {
15
DocumentBuilder parser;
16
DocumentBuilderFactory factory;
18
double walker_process_node(Node cur_node) {
22
child = cur_node.getFirstChild();
23
if ((child!=null)&&(child.getNodeType() == Node.TEXT_NODE)) {
25
res = Float.parseFloat(child.getNodeValue());
26
if (res!=0) return res;
27
} catch(Exception e) {
31
NamedNodeMap attrMap = cur_node.getAttributes();
32
int length = attrMap.getLength();
34
for (int i = 0; i < length; i++) {
36
res = Float.parseFloat(attrMap.item(i).getNodeValue());
37
if (res!=0) return res;
38
} catch (Exception e) {
46
double walker(Node node) {
51
for (cur_node = node; cur_node!=null; cur_node = cur_node.getNextSibling()) {
52
if((cur_node.getNodeType() == Node.ELEMENT_NODE)&&(++i>3)) break;
57
for (cur_node = node; cur_node!=null; cur_node = cur_node.getNextSibling()) {
58
if (cur_node.getNodeType() == Node.ELEMENT_NODE) {
60
res += walker_process_node(cur_node);
62
res+=walker(cur_node.getFirstChild());
68
public void InitXML() {
13
69
factory = DocumentBuilderFactory.newInstance();
14
70
factory.setNamespaceAware(true);
15
71
factory.setValidating(false);
21
77
factory.setFeature("http://apache.org/xml/features/dom/defer-node-expansion", false);
80
if (System.getenv("walk_tree")!=null) {
23
85
} catch (Throwable err) {
24
86
// ignoring missing option
30
92
catch (Throwable err) {
31
93
err.printStackTrace ();
35
public void ParseXML(FileInputStream is, int iters, int iter) {
97
public void ParseXML(FileInputStream is, int iters, int iter) {
99
Document doc = parser.parse(is);
101
double res = walker(doc.getFirstChild());
102
// System.out.println("Sum: " + res);
39
105
catch (Exception e)
41
107
System.out.println(e.toString());
45
static public void main(String argv[]) throws IOException {
111
static public void main(String argv[]) throws IOException {
46
112
bench mybench = new sun_dom2();
47
113
mybench.Bench(argv);