穿越我有这样的XML -如何禁用后输出转义
<DOCUMENT>
<SERVICE>
<ID>1338</ID>
<NAME>
<EN>this is an english name</EN>
<DE>this is a german name</DE>
</NAME>
</SERVICE>
</DOCUMENT>
正如你所看到的名称标签内的元素是XML等,但没有真正格式化为元素。输出XML需要看起来像
<SERVICES>
<SERVICE ID="1338" EN="this is an english name" DE="this is a german name"/>
</SERVICES>
我想通过XPATH获取EN和DE的值。我试图摆脱禁用输出转义,但我不认为这会奏效。
<xsl:template match="/">
<SERVICES>
<SERVICE>
<xsl:attribute name="ID"><xsl:value-of select="DOCUMENT/SERVICE/ID"/></xsl:attribute>
<xsl:attribute name="EN"><xsl:value-of select="DOCUMENT/SERVICE/NAME/EN" disable-output-escaping="yes"/></xsl:attribute>
<xsl:attribute name="DE"><xsl:value-of select="DOCUMENT/SERVICE/NAME/DE" disable-output-escaping="yes"/></xsl:attribute>
</SERVICE>
</SERVICES>
</xsl:template>
此处有任何建议吗?
你认为substring()可以在这里应用吗?或者你的源代码是否太动态?您是否尝试过输出转义? – JWiley 2013-03-07 16:53:26
您使用哪种XSLT处理器?它是否具有像Saxon 9这样的扩展功能,例如http://www.saxonica.com/documentation/functions/intro/parse-xml.xml? – 2013-03-07 17:43:07
我没有像Saxon9这样的扩展..它是我们的搜索引擎中的一个普通的内置转换服务器。 – user1766784 2013-03-07 17:48:39