#59021 Namespace aware processing fix for ReadOnlySharedStringsTable, to match the one recently added to XSSFSheetXMLHandler
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1731986 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
194fdfe162
commit
d35942ca52
@ -16,6 +16,8 @@
|
|||||||
==================================================================== */
|
==================================================================== */
|
||||||
package org.apache.poi.xssf.eventusermodel;
|
package org.apache.poi.xssf.eventusermodel;
|
||||||
|
|
||||||
|
import static org.apache.poi.xssf.usermodel.XSSFRelation.NS_SPREADSHEETML;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -193,7 +195,11 @@ public class ReadOnlySharedStringsTable extends DefaultHandler {
|
|||||||
|
|
||||||
public void startElement(String uri, String localName, String name,
|
public void startElement(String uri, String localName, String name,
|
||||||
Attributes attributes) throws SAXException {
|
Attributes attributes) throws SAXException {
|
||||||
if ("sst".equals(name)) {
|
if (uri != null && ! uri.equals(NS_SPREADSHEETML)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("sst".equals(localName)) {
|
||||||
String count = attributes.getValue("count");
|
String count = attributes.getValue("count");
|
||||||
if(count != null) this.count = Integer.parseInt(count);
|
if(count != null) this.count = Integer.parseInt(count);
|
||||||
String uniqueCount = attributes.getValue("uniqueCount");
|
String uniqueCount = attributes.getValue("uniqueCount");
|
||||||
@ -202,18 +208,22 @@ public class ReadOnlySharedStringsTable extends DefaultHandler {
|
|||||||
this.strings = new ArrayList<String>(this.uniqueCount);
|
this.strings = new ArrayList<String>(this.uniqueCount);
|
||||||
|
|
||||||
characters = new StringBuffer();
|
characters = new StringBuffer();
|
||||||
} else if ("si".equals(name)) {
|
} else if ("si".equals(localName)) {
|
||||||
characters.setLength(0);
|
characters.setLength(0);
|
||||||
} else if ("t".equals(name)) {
|
} else if ("t".equals(localName)) {
|
||||||
tIsOpen = true;
|
tIsOpen = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void endElement(String uri, String localName, String name)
|
public void endElement(String uri, String localName, String name)
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
if ("si".equals(name)) {
|
if (uri != null && ! uri.equals(NS_SPREADSHEETML)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("si".equals(localName)) {
|
||||||
strings.add(characters.toString());
|
strings.add(characters.toString());
|
||||||
} else if ("t".equals(name)) {
|
} else if ("t".equals(localName)) {
|
||||||
tIsOpen = false;
|
tIsOpen = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user