Revision 40799 branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/util/SLDUtils.java
SLDUtils.java | ||
---|---|---|
1 | 1 |
package org.gvsig.sldsupport.impl.util; |
2 | 2 |
|
3 | 3 |
import java.io.File; |
4 |
import java.io.FileInputStream; |
|
4 | 5 |
import java.io.FileReader; |
5 | 6 |
import java.io.IOException; |
6 | 7 |
import java.util.ArrayList; |
7 | 8 |
import java.util.List; |
8 | 9 |
|
9 | 10 |
import org.gvsig.sldsupport.exception.SLDReadException; |
11 |
import org.gvsig.sldsupport.impl.parser.ExtendedKXmlParser; |
|
12 |
import org.gvsig.sldsupport.sld.SLDRoot; |
|
10 | 13 |
import org.gvsig.sldsupport.sld.SLDTags; |
14 |
import org.gvsig.sldsupport.sld.layer.SLDLayer; |
|
11 | 15 |
import org.kxml2.io.KXmlParser; |
12 | 16 |
import org.slf4j.Logger; |
13 | 17 |
import org.slf4j.LoggerFactory; |
... | ... | |
103 | 107 |
// fos.close(); |
104 | 108 |
// } |
105 | 109 |
|
106 |
public String detectVersion(File f)
|
|
110 |
public static String detectVersion(File infile)
|
|
107 | 111 |
throws XmlPullParserException, IOException, SLDReadException { |
108 | 112 |
|
109 |
XmlPullParser parser = new KXmlParser(); |
|
113 |
XmlPullParser parser = new ExtendedKXmlParser(); |
|
114 |
FileInputStream fis = new FileInputStream(infile); |
|
110 | 115 |
// xmlSchemaParser = new XMLSchemaParser(); |
111 |
FileReader fr = new FileReader(f); |
|
112 |
parser.setInput(fr); |
|
113 |
parser.nextTag(); |
|
116 |
parser.setInput(fis, "ISO-8859-1"); |
|
114 | 117 |
|
115 |
if ( parser.getEventType() != XmlPullParser.END_DOCUMENT ) { |
|
116 |
|
|
117 |
String value = parser.getAttributeValue("", SLDTags.VERSION_ATTR); |
|
118 |
fr.close(); |
|
118 |
int tag = parser.getEventType(); |
|
119 |
if (tag == XmlPullParser.START_DOCUMENT) { |
|
120 |
parser.nextTag(); |
|
121 |
} else { |
|
122 |
if (tag != XmlPullParser.START_TAG) { |
|
123 |
throw new IOException( |
|
124 |
"Misplaced input stream (it's not before opening tag)"); |
|
125 |
} |
|
126 |
} |
|
127 |
String value = parser.getAttributeValue(null, SLDTags.VERSION_ATTR); |
|
128 |
fis.close(); |
|
129 |
if (value == null) { |
|
130 |
throw new SLDReadException("Version attribute not found"); |
|
131 |
} else { |
|
119 | 132 |
return value; |
120 |
} |
|
121 |
fr.close(); |
|
122 |
throw new SLDReadException("Unable to get SLD version" + |
|
123 |
" in file: " + f.getAbsolutePath()); |
|
133 |
} |
|
124 | 134 |
} |
125 | 135 |
|
136 |
|
|
137 |
|
|
138 |
|
|
126 | 139 |
public static String getTextUntilTag(XmlPullParser parser) |
127 | 140 |
throws XmlPullParserException, IOException { |
128 | 141 |
|
Also available in: Unified diff