обработка xslt - PullRequest
       15

обработка xslt

0 голосов
/ 18 марта 2012
public static void main(String[] args) throws IOException, URISyntaxException,TransformerException {  

TransformerFactory factory = TransformerFactory.newInstance();  
String workingDir = System.getProperty("user.dir");  
Source xslt = new StreamSource(new File(workingDir+"/src/jaxp/mysqldump_xml_to_sql.xsl"));  
Transformer transformer = factory.newTransformer(xslt);  
Source text = new StreamSource(new File(workingDir + "/src/jaxp/words.xml"));  
transformer.transform(text, new StreamResult(new File("output2.sql")));  
}  

Когда я запускаю эту программу, я получаю эту ошибку:

**Exception in thread "main" java.lang.StackOverflowError
at mysqldump_xml_to_sql.escape$dash$quotes()
at mysqldump_xml_to_sql.escape$dash$quotes()**  

Я установил размер стека и кучи с помощью этой команды:

java -Xss120m -Xms120m -Xmx500m  

Но я снова получаю эту ошибку.

это моя таблица стилей [1] http://mysqldump -x-restore.googlecode.com / files / mysqldump-xml-to-sql.xslt и мой xml файл является результатом команды mysqldump -x -uroot -pxxxx имя_базы_данных> команда test.xml и файл myxml имеет &> <символ </p>

1 Ответ

2 голосов
/ 18 марта 2012

Это происходит в преобразовании MySQL.Метод состоит из escape-тире и кавычек.

Если я экранирую значение, подобное "&" в HTML, я заменяю его на "&amp;".Но там все еще есть амперсанд.Код достаточно умен, чтобы понять, что это сделано?Если нет, вы можете понять, почему вы продолжаете пытаться выбраться из этого проклятого места и в конечном итоге возвращаться к смерти.

Я предполагаю, что ваш метод побега для тире и кавычек делает то же самое - преследованиеего хвост в землю.

...