- 我的 XML 数据在 xml 中包含“\”字符。
- 当我没有在 Mobilefirst Adapter 中使用 Transformation 时,它工作得很好。
但是当我在 MobielFirst 中通过 xsl 使用 Transformation 时,它会抛出如下错误
errors": [ "non-hex digit on line 4, column 471", "返回的 InvocationResult 必须是有效的 JSON 对象。" ],
我发现它是由我的 XML 中的斜杠“\”引起的。
除了在 MobileFirst 中如何解决此错误之外,相同的 .XSL 代码在其他人中也可以正常工作。
当我删除/评论“描述”
<xsl:value-of select="DESCRIPTION" />
时,它工作正常。
XML
<?xml version="1.0" encoding="UTF-8" ?>
<Envelope>
<Body>
<QueryResponse>
<CLASSIFICATIONSSet>
<CLASSSTRUCTURE>
<CLASSIFICATIONID>Kawin</CLASSIFICATIONID>
<CLASSSTRUCTUREID>1001</CLASSSTRUCTUREID>
<CLASSUSEWITH>
<OBJECTNAME>1</OBJECTNAME>
</CLASSUSEWITH>
<CLASSUSEWITH>
<OBJECTNAME>2</OBJECTNAME>
</CLASSUSEWITH>
<CLASSUSEWITH>
<OBJECTNAME>3</OBJECTNAME>
</CLASSUSEWITH>
<CLASSUSEWITH>
<OBJECTNAME>4</OBJECTNAME>
</CLASSUSEWITH>
<DESCRIPTION>End User Issue \ Telco</DESCRIPTION>
<HIERARCHYPATH>Good \ BAD</HIERARCHYPATH>
<OBJECTNAME>1</OBJECTNAME>
</CLASSSTRUCTURE>
</CLASSIFICATIONSSet>
</QueryResponse>
</Body>
</Envelope>
XSL
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:h="http://www.w3.org/1999/xhtml"
>
<xsl:output method="text"/>
<xsl:template match="/">
{
'ClassificationData': [
<xsl:for-each select="*//CLASSSTRUCTURE">
{
"CLASSSTRUCTUREID" : '<xsl:value-of select="CLASSSTRUCTUREID" />',
"DESCRIPTION" : '<xsl:value-of select="DESCRIPTION" />' ,
"CLASSIFICATIONID" : '<xsl:value-of select="CLASSIFICATIONID" />',
"OBJECTNAME" : '<xsl:value-of select="OBJECTNAME" />',
"CLASSUSEWITH" : [
<xsl:for-each select="CLASSUSEWITH">
{
"OBJECTNAME" : "<xsl:value-of select="OBJECTNAME" />"
} ,
</xsl:for-each>
]
},
</xsl:for-each>
]
</xsl:choose>
}
</xsl:template>
</xsl:stylesheet>