【发布时间】:2014-12-10 08:27:35
【问题描述】:
我正在应用 XPath 2.0 的 concat 函数来连接两个 xml 元素。它将它们连接起来,但以文本形式给出输出。我正在使用 XSLT 进行这种转换。
注意:我在网上研究过,concat函数默认将数据转换为文本格式,有什么办法可以绕过它,让连接后的数据仍然是XML格式。
输入 XML:
<?xml version="1.0"?><?xml-stylesheet type="text/xsl"?>
<jsonObject>
<alarm>
<groups>1</groups>
<typeKey>FIRE</typeKey>
<longitude>65656</longitude>
<victim>2</victim>
<letitude>6566</letitude>
</alarm>
<alarm2>
<data>Stewart</data>
<data1>John</data1>
</alarm2>
</jsonObject>
输入 XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="//jsonObject/alarm">
<Latitude><xsl:value-of select="letitude"/></Latitude>
<Combine><xsl:value-of select="concat(//alarm,//alarm2) "/></Combine>
</xsl:template>
</xsl:stylesheet>
当前结果:
<?xml version="1.0" encoding="UTF-8"?>
<Latitude>6566</Latitude>
<Combine>
1
FIRE
65656
2
6566
Stewart
John
</Combine>
预期结果:
<?xml version="1.0" encoding="UTF-8"?>
<Latitude>6566</Latitude>
<Combine>
<groups>1</groups>
<typeKey>FIRE</typeKey>
<longitude>65656</longitude>
<victim>2</victim>
<letitude>6566</letitude>
<data>Stewart</data>
<data1>John</data1>
</Combine>
【问题讨论】: