我面临的问题是,如果XML响应包含以数字开头的节点(键)元素,例如< 3party /> 如果我尝试从XSL样式表中的xml获取此节点,而不是因为以下异常而失败。使用XSL 1.0的代码示例(我不能提前通知XSL 2.0)。
XML Snippet : <root>
<3party>some_value</3party>
</root>
XSL Snippet : Say above value is in a XSL variable response.
<xsl:variable select="$response/root/3party" />
转换异常我得到:
javax.xml.transform.TransformerException: Syntax error in '$response/root/3party'.
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.passErrorsToListener(TransformerFactoryImpl.java:661)
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:836)
ERROR: Thu Nov 10 12:10:00 IST 2016.411 ErrorHandler.fatalError(TransformationConfig.java:46) Thread: Thread[main,5,main] - Compilation of XSL Stylesheet: with Error: Could not compile stylesheet
javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:832)
答案 0 :(得分:1)
不允许Xml元素以数字开头。来自here:
XML元素必须遵循以下命名规则: - 元素名称区分大小写 - 元素名称必须以字母或下划线开头 - 元素名称不能以字母xml(或XML或Xml等)开头 - 元素名称可以包含字母,数字,连字符,下划线和句点 - 元素名称不能包含空格