XSL -if与属性的组合

时间:2015-12-13 15:22:50

标签: xml if-statement xslt

大家好我有xsl的问题。我有一个这样的基本文件:

<?xml version="1.0" encoding="UTF-8"?>
<div type="letter">
<head>
<persName type="creator" xml:id="ID.14">
            <forename>Theodor</forename>
            <surname>Billroth</surname>
          </persName>
          <persName type="addressee" xml:id="ID.15">
            <forename>Alexander</forename>
            <surname>Rollett</surname>
</persName>
<persName type="creator" xml:id="ID.16">
            <forename>Chris</forename>
            <surname>Billroth</surname>
          </persName>
          <persName type="addressee" xml:id="ID.17">
            <forename>Phil</forename>
            <surname>Rollett</surname>
</persName>
</head>
</div>

我得到了一些建议并且稍微编了代码。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">

<xsl:template match="//head">
        <div>
          <head>
                 <xsl:for-each select="//persName[@type='creator']">
                 <xsl:text> From </xsl:text>
                        <xsl:value-of select="forename"/>
                        <xsl:text> to </xsl:text>
                        <!--it is woking until here  -->
                    <xsl:if test="position() != last()">
                    </xsl:if>
                    </xsl:for-each>
           </head>
        </div>
    </xsl:template>
</xsl:stylesheet>

目前输出看起来像这样:

 <div><head> From Theodor to  From Chris to </head></div>

我希望或者更好,我希望生成一个输出,该输出命中创建者属性,如果它命中,则应该添加forename。然后跳下来,添加从addresssee中选择forename。输出应如下所示:

From Theodor To Alexander 
and
From Christian to Phil
好吧,这是一个选择。我希望你有一个解决方案。干杯

1 个答案:

答案 0 :(得分:1)

以此为出发点。它将与您的示例输入一起使用,假设每个创建者都有一个收件人。

XSLT 1.0

find_element...click()