find $directory -type f -name "*.in"
немного короче всего этого (и безопаснее - имеет дело с пробелами в именах файлов и каталогов).
Возможно, ваш скрипт не работает для записей, в имени которых нет .
, что делает $extension
пустым.
В итоге я использовал JAXP с SAX API.
Добавление к моему сервлету чего-то вроде следующего:
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
....
InputStream in = connection.getInputStream();
InputSource responseXML = new InputSource(in);
final StringBuilder response = new StringBuilder();
DefaultHandler myHandler = new DefaultHandler() {
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if (localName.equals("elementname")) {
response.append(attributes.getValue("attributename"));
inElement = true;
}
}
public void characters(char [] buf, int offset, int len) {
if (inElement) {
inElement = false;
String s = new String(buf, offset, len);
response.append(s);
response.append("\n");
}
}
};
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
SAXParser parser = factory.newSAXParser();
parser.parse(responseXML, myHandler);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
in.close();
connection.disconnect();
....
Xerces (который предоставляет реализации как SAX, так и DOM) и Xalan (который обеспечивает поддержку преобразований) - оба были связаны с JDK начиная с версии 1.5 и поэтому уже настроены в стандартной установке Java
JDom имеет лучший (более простой) интерфейс, чем стандартный API Java XML.
Я полагаю, это зависит от ваших целей. Я использовал JAXB для маршалинга / демаршалинга xml в объекты Java, и он довольно быстрый, легко расширяемый и имеет хорошую поддержку сообщества.
Если вы не хотите писать схемы и что-то еще, тогда Мне повезло с dom4j , и он требует меньшего обучения.
вы можете использовать те же библиотеки, что и в среде без сервлетов.
Другой вариант, который имеет лучшую скорость, чем Xerces (в последний раз я их сравнивал), был Saxon .
Вы можете использовать JDOM , который требует xerces SAXParser. Однако AppEngine не предоставляет библиотеку xerces. Вы можете добавить его, скопировав его в папку WEB-INF / lib вашего проекта.