【问题标题】:xslt processingxslt 处理
【发布时间】:2012-03-18 15:12:43
【问题描述】:
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 databasename tablename > test.xml 命令的结果 并且 myxml 文件有 & >

【问题讨论】:

  • XSLT 中有很多递归? (你没有显示)
  • 这个问题实际上没有 XSLT。请编辑它并提供一个完整的(但很小的)XML 文档和一个完整的 XSLT 样式表,当在提供的 XML 文档上运行时会重现错误。如果人们可以运行转换并重现错误,他们中的许多人将能够提供帮助。在这种情况下,主要嫌疑人是无限递归。
  • 您已经提出了 12 个问题但没有接受任何答案?请返回您的问题并接受一些问题。
  • [1] Jim Garrison 我不知道你说对不起。

标签: java xslt xml-parsing


【解决方案1】:

它发生在 MySQL 转换中。方法是转义破折号和引号。

如果我在 HTML 中转义像 "&" 这样的值,我将其替换为 "&"。但是那里仍然有一个&符号。代码是否足够聪明,可以意识到它已经完成?如果没有,你就会明白为什么你会一直试图走出那个该死的地方并最终将自己递归至死。

我猜你的破折号和引号的转义方法正在做同样的事情 - 将它的尾巴追到地上。

【讨论】:

  • 我使用保留字符 ' ” & . . .这反转字符效果很好,但是当我使用 &apos 时会发生错误。
猜你喜欢
  • 1970-01-01
  • 2011-06-04
  • 2012-05-18
  • 1970-01-01
  • 2011-04-21
  • 2020-07-03
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
相关资源
最近更新 更多