Есть вполне обычная задача: получить страницу с какого-то левого сайта и найти в ней определенную инфу.
Написал такую программку (выдержка из сорцов):
// htmlData - это String с html-кодом страницы
// пропускаем его через tidy и получаем org.w3c.dom.Document clearedDom
Tidy tidy = new Tidy();
tidy.setConfigurationFromProps(tidyConfigProps);
Document clearedDom = tidy.parseDOM(new StringReader(htmlData), null);
// создаем объект xpath и пытаемся что-нибудь найти
try {
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
Object result = xpath.evaluate("//html", clearedDom, XPathConstants.NODESET);
}
catch (XPathExpressionException xee) {...}
в строчке , где xpath.evaluate(...), программа вылетает с эксепшеном:
Exception in thread «main» java.lang.ArrayIndexOutOfBoundsException: -1 at com.sun.org.apache.xml.internal.dtm.ref.ExpandedNameTable.getType(ExpandedNameTable.java:345) at com.sun.org.apache.xml.internal.dtm.ref.DTMDefaultBase.indexNode(DTMDefaultBase.java:319) .. и т.д.
облазил весь гугол. в явадоках нет инфы о том, что может выскакивать ArrayIndexOutOfBoundsException, и почему.
Может, кто-нибудь сталкивался с такой проблемой или знает, в чем дело? Спасибо.