我得到了像这样的xml
<feature ufi="-1578440">
<designation>PPLA</designation>
<administrative_division>06</administrative_division>
<name_type>V</name_type>
<full_name>Hobart Town</full_name>
<sort_key>HOBARTTOWN</sort_key>
<modified>2012-02-06</modified>
</feature>
<feature ufi="-1578440">
<designation>PPLA</designation>
<administrative_division>06</administrative_division>
<name_type>N</name_type>
<full_name>Hobart</full_name>
<sort_key>HOBART</sort_key>
<modified>2012-02-06</modified>
</feature>
基本上,除了name_type之外,2个字段的信息是相似的。所以我想使用xsl分组生成类似的输出。
Hobart (also known as Hobart Town), PPLA, V, 2012-02-06
有人能告诉我实现结果的简单方法吗?非常感谢
编辑:我想用xsl版本1来做,键是ufi
答案 0 :(得分:1)
不涉及分组,但这将完成工作(假设纯文本输出并忽略换行符,留作练习):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text"/>
<xsl:template match="feature[name_type='N']">
<xsl:value-of select="full_name"/>
<xsl:variable name="ufi" select="@ufi"/>
(also known as <xsl:value-of select="../feature[name_type='V' and @ufi=$ufi]/full_name"/>)
, <xsl:value-of select="designation"/>, <xsl:value-of select="name_type"/>, <xsl:value-of select="modified"/>
</xsl:template>
<xsl:template match="feature"/>
</xsl:stylesheet>
使用xslt 2.0会好得多..