2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
Copyright @ 1999-2004, The Institute for Genomic Research (TIGR). |
2 |
26 Feb 07 |
jari |
All rights reserved. |
2 |
26 Feb 07 |
jari |
4 |
*/ |
2 |
26 Feb 07 |
jari |
5 |
/* |
2 |
26 Feb 07 |
jari |
* ScriptParser.java |
2 |
26 Feb 07 |
jari |
7 |
* |
2 |
26 Feb 07 |
jari |
* Created on December 15, 2003, 10:59 PM |
2 |
26 Feb 07 |
jari |
9 |
*/ |
2 |
26 Feb 07 |
jari |
10 |
|
2 |
26 Feb 07 |
jari |
11 |
package org.tigr.microarray.mev.script.util; |
2 |
26 Feb 07 |
jari |
12 |
|
2 |
26 Feb 07 |
jari |
13 |
import java.io.File; |
2 |
26 Feb 07 |
jari |
14 |
import java.io.IOException; |
2 |
26 Feb 07 |
jari |
15 |
import java.io.Writer; |
2 |
26 Feb 07 |
jari |
16 |
|
2 |
26 Feb 07 |
jari |
17 |
import org.apache.xerces.parsers.DOMParser; |
2 |
26 Feb 07 |
jari |
18 |
import org.w3c.dom.Document; |
2 |
26 Feb 07 |
jari |
19 |
import org.w3c.dom.Element; |
2 |
26 Feb 07 |
jari |
20 |
import org.w3c.dom.Node; |
2 |
26 Feb 07 |
jari |
21 |
import org.w3c.dom.NodeList; |
2 |
26 Feb 07 |
jari |
22 |
import org.w3c.dom.traversal.DocumentTraversal; |
2 |
26 Feb 07 |
jari |
23 |
import org.w3c.dom.traversal.NodeFilter; |
2 |
26 Feb 07 |
jari |
24 |
import org.w3c.dom.traversal.NodeIterator; |
2 |
26 Feb 07 |
jari |
25 |
|
2 |
26 Feb 07 |
jari |
26 |
/** |
2 |
26 Feb 07 |
jari |
27 |
* |
2 |
26 Feb 07 |
jari |
* @author braisted |
2 |
26 Feb 07 |
jari |
29 |
*/ |
2 |
26 Feb 07 |
jari |
30 |
public class ScriptParser { |
2 |
26 Feb 07 |
jari |
31 |
|
2 |
26 Feb 07 |
jari |
32 |
Document doc; |
2 |
26 Feb 07 |
jari |
33 |
String lineSeparator = "\n\n"; |
2 |
26 Feb 07 |
jari |
34 |
String indent = " "; |
2 |
26 Feb 07 |
jari |
35 |
|
2 |
26 Feb 07 |
jari |
/** Creates a new instance of ScriptParser */ |
2 |
26 Feb 07 |
jari |
37 |
public ScriptParser() { |
2 |
26 Feb 07 |
jari |
38 |
|
2 |
26 Feb 07 |
jari |
39 |
} |
2 |
26 Feb 07 |
jari |
40 |
|
2 |
26 Feb 07 |
jari |
41 |
public void printValues(String fileName) throws Exception { |
2 |
26 Feb 07 |
jari |
//File specification |
2 |
26 Feb 07 |
jari |
43 |
File file = new File(fileName); |
2 |
26 Feb 07 |
jari |
//Intantiate parser |
2 |
26 Feb 07 |
jari |
45 |
DOMParser parser = new DOMParser(); |
2 |
26 Feb 07 |
jari |
//Parse file |
2 |
26 Feb 07 |
jari |
47 |
parser.parse(file.toURL().toString()); |
2 |
26 Feb 07 |
jari |
//get document |
2 |
26 Feb 07 |
jari |
49 |
doc = parser.getDocument(); |
2 |
26 Feb 07 |
jari |
//get document root |
2 |
26 Feb 07 |
jari |
51 |
Element analysis = doc.getDocumentElement(); |
2 |
26 Feb 07 |
jari |
52 |
|
2 |
26 Feb 07 |
jari |
53 |
NodeList algSets = analysis.getElementsByTagNameNS("","alg_set"); |
2 |
26 Feb 07 |
jari |
54 |
NodeIterator algorithmIterator; |
2 |
26 Feb 07 |
jari |
55 |
Element algSet; |
2 |
26 Feb 07 |
jari |
56 |
|
2 |
26 Feb 07 |
jari |
57 |
Element algorithm; |
2 |
26 Feb 07 |
jari |
58 |
|
2 |
26 Feb 07 |
jari |
59 |
|
2 |
26 Feb 07 |
jari |
60 |
for(int i = 0; i < algSets.getLength(); i++){ |
2 |
26 Feb 07 |
jari |
61 |
|
2 |
26 Feb 07 |
jari |
62 |
algSet = (Element)algSets.item(i); |
2 |
26 Feb 07 |
jari |
63 |
|
2 |
26 Feb 07 |
jari |
64 |
algorithmIterator = ((DocumentTraversal)doc).createNodeIterator(algSet, NodeFilter.SHOW_ALL, null, true); |
2 |
26 Feb 07 |
jari |
65 |
|
2 |
26 Feb 07 |
jari |
66 |
Node node; |
2 |
26 Feb 07 |
jari |
67 |
while((node = algorithmIterator.nextNode()) != null) { |
2 |
26 Feb 07 |
jari |
68 |
if(node.getNodeType() == Node.ELEMENT_NODE){ |
2 |
26 Feb 07 |
jari |
69 |
System.out.println("Node name = "+node.getNodeName()); |
2 |
26 Feb 07 |
jari |
70 |
} else if(node.getNodeType() == Node.TEXT_NODE){ |
2 |
26 Feb 07 |
jari |
71 |
System.out.println("Value = "+node.getNodeValue()); |
2 |
26 Feb 07 |
jari |
72 |
} |
2 |
26 Feb 07 |
jari |
73 |
System.out.println("========================="); |
2 |
26 Feb 07 |
jari |
74 |
|
2 |
26 Feb 07 |
jari |
75 |
} |
2 |
26 Feb 07 |
jari |
76 |
|
2 |
26 Feb 07 |
jari |
77 |
|
2 |
26 Feb 07 |
jari |
78 |
} |
2 |
26 Feb 07 |
jari |
79 |
|
2 |
26 Feb 07 |
jari |
80 |
} |
2 |
26 Feb 07 |
jari |
81 |
|
2 |
26 Feb 07 |
jari |
82 |
public void writeDocument(String fileName) throws IOException { |
2 |
26 Feb 07 |
jari |
83 |
java.io.FileWriter writer = new java.io.FileWriter(fileName); |
2 |
26 Feb 07 |
jari |
84 |
serialize(doc, writer); |
2 |
26 Feb 07 |
jari |
85 |
writer.flush(); |
2 |
26 Feb 07 |
jari |
86 |
writer.close(); |
2 |
26 Feb 07 |
jari |
87 |
} |
2 |
26 Feb 07 |
jari |
88 |
|
2 |
26 Feb 07 |
jari |
89 |
private void serialize(Document doc, Writer writer) throws IOException { |
2 |
26 Feb 07 |
jari |
90 |
serializeNode(doc, writer, ""); |
2 |
26 Feb 07 |
jari |
91 |
} |
2 |
26 Feb 07 |
jari |
92 |
|
2 |
26 Feb 07 |
jari |
93 |
private void serializeNode(Node node, Writer writer, String indentLevel) throws IOException { |
2 |
26 Feb 07 |
jari |
94 |
String name; |
2 |
26 Feb 07 |
jari |
95 |
|
2 |
26 Feb 07 |
jari |
96 |
switch(node.getNodeType()) { |
2 |
26 Feb 07 |
jari |
97 |
case Node.DOCUMENT_NODE: |
2 |
26 Feb 07 |
jari |
98 |
writer.write("<?xml version=\"1.0\"?>"); |
2 |
26 Feb 07 |
jari |
99 |
writer.write(lineSeparator); |
2 |
26 Feb 07 |
jari |
100 |
|
2 |
26 Feb 07 |
jari |
101 |
Document doc = (Document)node; |
2 |
26 Feb 07 |
jari |
102 |
serializeNode(doc.getDocumentElement(), writer, " "); |
2 |
26 Feb 07 |
jari |
103 |
break; |
2 |
26 Feb 07 |
jari |
104 |
case Node.ELEMENT_NODE: |
2 |
26 Feb 07 |
jari |
105 |
name = node.getNodeName(); |
2 |
26 Feb 07 |
jari |
106 |
writer.write(indentLevel + "<" + name); |
2 |
26 Feb 07 |
jari |
//posible attributes |
2 |
26 Feb 07 |
jari |
108 |
|
2 |
26 Feb 07 |
jari |
109 |
writer.write(">"); |
2 |
26 Feb 07 |
jari |
110 |
|
2 |
26 Feb 07 |
jari |
111 |
NodeList children = node.getChildNodes(); |
2 |
26 Feb 07 |
jari |
112 |
if(children != null) { |
2 |
26 Feb 07 |
jari |
113 |
if((children.item(0) != null) && |
2 |
26 Feb 07 |
jari |
114 |
(children.item(0).getNodeType() == Node.ELEMENT_NODE )){ |
2 |
26 Feb 07 |
jari |
115 |
writer.write(lineSeparator); |
2 |
26 Feb 07 |
jari |
116 |
} |
2 |
26 Feb 07 |
jari |
117 |
for(int i = 0; i < children.getLength(); i++){ |
2 |
26 Feb 07 |
jari |
118 |
serializeNode(children.item(i), writer, indentLevel + indent); |
2 |
26 Feb 07 |
jari |
119 |
} |
2 |
26 Feb 07 |
jari |
120 |
if((children.item(0) != null) && |
2 |
26 Feb 07 |
jari |
121 |
(children.item(children.getLength()-1).getNodeType() == Node.ELEMENT_NODE)) { |
2 |
26 Feb 07 |
jari |
122 |
writer.write(indentLevel); |
2 |
26 Feb 07 |
jari |
123 |
} |
2 |
26 Feb 07 |
jari |
124 |
|
2 |
26 Feb 07 |
jari |
125 |
|
2 |
26 Feb 07 |
jari |
126 |
} |
2 |
26 Feb 07 |
jari |
127 |
writer.write("</" + name + ">"); |
2 |
26 Feb 07 |
jari |
128 |
writer.write(lineSeparator); |
2 |
26 Feb 07 |
jari |
129 |
break; |
2 |
26 Feb 07 |
jari |
130 |
case Node.TEXT_NODE: |
2 |
26 Feb 07 |
jari |
131 |
writer.write(node.getNodeValue()); |
2 |
26 Feb 07 |
jari |
132 |
break; |
2 |
26 Feb 07 |
jari |
133 |
case Node.COMMENT_NODE: |
2 |
26 Feb 07 |
jari |
134 |
break; |
2 |
26 Feb 07 |
jari |
135 |
} |
2 |
26 Feb 07 |
jari |
136 |
} |
2 |
26 Feb 07 |
jari |
137 |
|
2 |
26 Feb 07 |
jari |
138 |
public static void main(String [] args){ |
2 |
26 Feb 07 |
jari |
139 |
ScriptParser sp = new ScriptParser(); |
2 |
26 Feb 07 |
jari |
140 |
try{ |
2 |
26 Feb 07 |
jari |
141 |
sp.printValues("c:/Temp/script.xml"); |
2 |
26 Feb 07 |
jari |
142 |
|
2 |
26 Feb 07 |
jari |
143 |
sp.writeDocument("c:/Temp/result_script.xml"); |
2 |
26 Feb 07 |
jari |
144 |
|
2 |
26 Feb 07 |
jari |
145 |
} catch (Exception e) {e.printStackTrace();} |
2 |
26 Feb 07 |
jari |
146 |
} |
2 |
26 Feb 07 |
jari |
147 |
} |