Revision 40799 branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/util/SLDUtils.java

View differences:

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