我正在编写XSLT并在java中运行它。我正在使用Saxon
。当我运行我的程序时,我得到了以下异常。
Error at xsl:value-of on line 314 of chapters.xsl:
SERE0014: Illegal HTML character: decimal 157
at xsl:call-template name="entry" (file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl#417)
in built-in template rule
at xsl:apply-templates (file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl#385)
processing /chapter/section[1]/section[5]/table[1]/tgroup[1]/tbody[1]
at xsl:apply-templates (file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl#370)
processing /chapter/section[1]/section[5]/table[1]/tgroup[1]
at xsl:apply-templates (file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl#205)
processing /chapter/section[1]/section[5]/table[1]
at xsl:apply-templates (file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl#205)
processing /chapter/section[1]/section[5]
at xsl:apply-templates (file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl#61)
processing /chapter/section[1]
at xsl:apply-templates (file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl#19)
processing /chapter
; SystemID: file:///C:/Users/u0138039/Desktop/Proview/HK/2016/COMPORD/final/XSLT/chapters.xsl; Line#: 314; Column#: -1
net.sf.saxon.trans.XPathException: Illegal HTML character: decimal 157
at net.sf.saxon.serialize.HTMLEmitter.writeEscape(HTMLEmitter.java:366)
at net.sf.saxon.serialize.XMLEmitter.characters(XMLEmitter.java:594)
at net.sf.saxon.serialize.HTMLEmitter.characters(HTMLEmitter.java:428)
at net.sf.saxon.serialize.HTMLIndenter.characters(HTMLIndenter.java:255)
at net.sf.saxon.event.ProxyReceiver.characters(ProxyReceiver.java:194)
at net.sf.saxon.event.ProxyReceiver.characters(ProxyReceiver.java:194)
at net.sf.saxon.event.ProxyReceiver.characters(ProxyReceiver.java:194)
at net.sf.saxon.event.ProxyReceiver.characters(ProxyReceiver.java:194)
at net.sf.saxon.event.ComplexContentOutputter.characters(ComplexContentOutputter.java:174)
at net.sf.saxon.expr.instruct.ValueOf.processValue(ValueOf.java:295)
at net.sf.saxon.expr.instruct.SimpleNodeConstructor.processLeavingTail(SimpleNodeConstructor.java:222)
at net.sf.saxon.expr.instruct.ValueOf.processLeavingTail(ValueOf.java:280)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.AnalyzeString.processLeavingTail(AnalyzeString.java:443)
at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:336)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1124)
at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:516)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1061)
at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:284)
at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:244)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Template.expand(Template.java:367)
at net.sf.saxon.expr.instruct.CallTemplate.process(CallTemplate.java:343)
at net.sf.saxon.expr.instruct.ForEach.processLeavingTail(ForEach.java:419)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:336)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1124)
at net.sf.saxon.trans.TextOnlyCopyRuleSet.process(TextOnlyCopyRuleSet.java:65)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1100)
at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:516)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1061)
at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:284)
at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:244)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:336)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1124)
at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:284)
at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:244)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:336)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1124)
at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:284)
at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:244)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:336)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1124)
at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:284)
at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:244)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:336)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1124)
at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:284)
at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:244)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:144)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:450)
at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:389)
at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:669)
at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:336)
at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1124)
at net.sf.saxon.Controller.transformDocument(Controller.java:2106)
at net.sf.saxon.Controller.transform(Controller.java:1705)
at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:547)
at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:177)
at com.s1a.alpha.APP2.main(APP2.java:74)
我已将输出法检测器更改为xml
,最初为html
。令我惊讶的是,没有Exception并且生成了文件。我很想知道,html
如何以及为什么失败并成功使用xml
由于
答案 0 :(得分:0)
请参阅https://www.w3.org/TR/xslt-xquery-serialization/#html-output,需要
某些字符,特别是控制字符#x7F-#x9F,是 在XML中合法但在HTML中不合法。这是一个序列化错误 [错误:SERE0014]使用HTML输出方法时出现这样的字符 出现在数据模型的实例中。串行器必须发出信号 错误。
十进制157是十六进制的9D,因此它在该范围内。
答案 1 :(得分:0)
当输入中出现x80-x9f范围内的字符时,通常表示该文件采用Windows-1252编码,但已被错误标记为ISO-8859-1。但是,我有点惊讶地看到x9D导致了麻烦,因为这在Windows-1252中未被分配。你觉得它应该是什么角色?
请注意,如果指定HTML版本5.0作为输出方法,则@MartinHonnen引用的规则将放宽XSLT 3.0。但是,如果您的输入包含此类字符,那么这并不会改变输入有问题的事实。
另请注意,XML 1.0中不允许使用此范围内的字符,但XML 1.1中允许使用它们。你还没有给我们足够的信息来看看这个流氓角色是如何进入系统的。