Xml 如何在xslt中用分号和空格分隔多个条目,并删除重复的术语
我有如下xmlXml 如何在xslt中用分号和空格分隔多个条目,并删除重复的术语,xml,xslt-1.0,Xml,Xslt 1.0,我有如下xml <?xml version="1.0" standalone="yes"?> <epdata dbname="psyh"> <record plink="http://search.ebscohost.com/login.aspx?direct=true&db=psyh&AN=2009-00375-006&site=ehost-live&EPSource=esi">
<?xml version="1.0" standalone="yes"?>
<epdata dbname="psyh">
<record plink="http://search.ebscohost.com/login.aspx?direct=true&db=psyh&AN=2009-00375-006&site=ehost-live&EPSource=esi">
<item name="SubjectKeyword">life-threatening food refusal</item>
<item name="SubjectKeyword">life-threatening food refusal</item>
<item name="SubjectKeyword">nine-year-old girls</item>
<item name="SubjectKeyword">Maudsley model</item>
<item name="SubjectKeyword">family-based treatment</item>
<item name="SubjectKeyword">anorexia nervosa</item>
<item name="SubjectKeyword">eating disorders</item>
<subitem name="ClassDescrip">Eating Disorders</subitem>
<subitem name="ClassDescrip">Group & Family Therapy</subitem>
<subitem name="SubjMajDescrip">Anorexia Nervosa</subitem>
<subitem name="SubjMajDescrip">Eating Behavior</subitem>
<subitem name="SubjMajDescrip">Eating Disorders</subitem>
<subitem name="SubjMajDescrip">Family Therapy</subitem>
<subitem name="SubjMajDescrip">Food</subitem>
<subitem name="SubjMinorDescrip">Threat</subitem>
<subitem name="SubjMinorDescrip">Food Refusal</subitem>
</record>
</epdata>
威胁生命的拒食
威胁生命的拒食
九岁女孩
莫兹利模型
家庭治疗
神经性厌食
饮食失调
饮食失调
团体与家庭治疗
神经性厌食
饮食行为
饮食失调
家庭治疗
食物
威胁
拒食
使用XSLT1.0,我希望得到如下输出
威胁生命的拒食;九岁女孩;莫兹利模式;家庭治疗;神经性厌食症;进食障碍;团体和家庭治疗;进食行为;
家庭治疗;食物;威胁;拒绝食物“此XSLT 1.0转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kElemByVal" match="record/*"
use="translate(.,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz')"/>
<xsl:template match=
"record/*
[generate-id()
=
generate-id(key('kElemByVal',
translate(.,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'))[1])]">
<xsl:if test="not(position()=1)">; </xsl:if>
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
;
应用于所提供的XML文档时(纠正了一个错误):
威胁生命的拒食
威胁生命的拒食
九岁女孩
莫兹利模型
家庭治疗
神经性厌食
饮食失调
饮食失调
集团及;家庭治疗
神经性厌食
饮食行为
饮食失调
家庭治疗
食物
威胁
拒食
生成所需的正确结果:
威胁生命的拒食;九岁女童;莫兹利模型;以家庭为基础的治疗;神经性厌食症;饮食失调;团体与家庭治疗;饮食行为;家庭治疗;食物;威胁;拒食
<epdata dbname="psyh">
<record plink="http://search.ebscohost.com/login.aspx?direct=true&db=psyh&AN=2009-00375-006&site=ehost-live&EPSource=esi">
<item name="SubjectKeyword">life-threatening food refusal</item>
<item name="SubjectKeyword">life-threatening food refusal</item>
<item name="SubjectKeyword">nine-year-old girls</item>
<item name="SubjectKeyword">Maudsley model</item>
<item name="SubjectKeyword">family-based treatment</item>
<item name="SubjectKeyword">anorexia nervosa</item>
<item name="SubjectKeyword">eating disorders</item>
<subitem name="ClassDescrip">Eating Disorders</subitem>
<subitem name="ClassDescrip">Group & Family Therapy</subitem>
<subitem name="SubjMajDescrip">Anorexia Nervosa</subitem>
<subitem name="SubjMajDescrip">Eating Behavior</subitem>
<subitem name="SubjMajDescrip">Eating Disorders</subitem>
<subitem name="SubjMajDescrip">Family Therapy</subitem>
<subitem name="SubjMajDescrip">Food</subitem>
<subitem name="SubjMinorDescrip">Threat</subitem>
<subitem name="SubjMinorDescrip">Food Refusal</subitem>
</record>
</epdata>