Saxon调用Zip压缩包内XML文件时出现Invalid URI错误,求正确的URI语法
Saxon调用Zip压缩包内XML文件时出现Invalid URI错误,求正确的URI语法
看起来你在尝试用Saxon直接读取Zip包里的XML文件时踩了URI格式的坑,我来帮你调整下正确的写法~
你当前的命令里,Zip文件的URI写法jar:"file:./ORR Stations Table1410.zip\!/ORR Stations Table1410.xml"有几个不符合标准的地方:
- 多余的嵌套引号会干扰URI解析
- Windows风格的反斜杠
\不是URI标准的路径分隔符,应该用正斜杠/ - 空格这类特殊字符在URI里需要转义成
%20,避免解析时出错
针对你的场景,修正后的URI应该是这样的(用相对路径,匹配你设置的工作目录):jar:file:./ORR%20Stations%20Table1410.zip!/ORR%20Stations%20Table1410.xml
对应的完整AutoHotkey命令如下:
runwait %comspec% /k java -jar "C:\Program Files\My Small Programs\Saxon\saxon-he-12.5.jar" -u jar:file:./ORR%20Stations%20Table1410.zip!/ORR%20Stations%20Table1410.xml -xsl:"ORR Table 1410 Compare with NR.xsl" -o:"ORR Table 1410 Compare with NR OUT.xml"
如果相对路径还是有问题,你可以试试用绝对路径的URI,这样能彻底避免路径解析的歧义:
runwait %comspec% /k java -jar "C:\Program Files\My Small Programs\Saxon\saxon-he-12.5.jar" -u jar:file:/E:/dwgs/Json/ORR%20Stations%20Table1410/ORR%20Stations%20Table1410.zip!/ORR%20Stations%20Table1410.xml -xsl:"ORR Table 1410 Compare with NR.xsl" -o:"ORR Table 1410 Compare with NR OUT.xml"
另外你提到解压后用-s:"ORR Stations Table1410.xml"能正常运行,说明你的XSL逻辑和文件本身都没问题,只要把Zip的URI格式调整符合标准,应该就能解决这个Invalid URI错误啦。
备注:内容来源于stack exchange,提问作者DaveF
相关产品推荐
相关产品推荐

