如何将XSL测试结果分配给变量

时间:2014-06-05 09:56:39

标签: xml xslt

这是我们的XML:

...

    <OBJECT_CONTACT_PLZ>2222</OBJECT_CONTACT_PLZ>
    <Kategorien>
        <Kategorie>
            <Bezeichnung>AAA</Bezeichnung>
            <Ebene>1</Ebene>
            <KategorieID>13</KategorieID>
        </Kategorie>
        <Kategorie>
            <Bezeichnung>BBB</Bezeichnung>
            <Ebene>2</Ebene>
            <KategorieID>35</KategorieID>
            <Parent>13</Parent>
        </Kategorie>
        <Kategorie>
            <Bezeichnung>XXX</Bezeichnung>
            <Ebene>3</Ebene>
            <KategorieID>55</KategorieID>
            <Parent>35</Parent>
        </Kategorie>
    </Kategorien>

...

在这里我们的XSL:

<xsl:if test="(td2:Kategorien/Kategorie[contains(Bezeichnung, 'XXX')] or td2:Kategorien/Kategorie[contains(Bezeichnung, 'YYY')] or td2:Kategorien/Kategorie[contains(Bezeichnung, 'ZZZ')]) and ((td2:OBJECT_CONTACT_PLZ='0000') or (td2:OBJECT_CONTACT_PLZ='1111') or (td2:OBJECT_CONTACT_PLZ='2222') or (td2:OBJECT_CONTACT_PLZ='3333'))">

<xsl:variable name="plz">
    <xsl:value-of select="td2:CONTACT_PLZ"></xsl:value-of> </xsl:variable>

<xsl:variable name="betriebsart">
    <xsl:value-of select="td2:Kategorien/Kategorie/Bezeichnung"></xsl:value-of> </xsl:variable>

目前,变量'betriebsart'总是填充第一个'Kategorie',在本例中为'AAA'。

我们如何使用'if'子句中匹配的'Kategorie'填充变量'betriebsart',在本例中为'XXX'?

非常感谢您的任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试:

<xsl:value-of select="td2:Kategorien/Kategorie[contains(Bezeichnung, 'XXX') or contains(Bezeichnung, 'YYY') or contains(Bezeichnung, 'ZZZ')]/Bezeichnung"/>