XPath / XPath-Funktionen / XPath: Sequenz-Funktionen / XPath: exactly-one
![]() |
![]() |
➪ Die exactly-one-Funktion erzwingt, dass eine Sequenz genau ein einziges Item aufweist. Ist das nicht der Fall (die Sequenz ist leer oder hat mehrere Items), wird eine Fehlermeldung generiert.
Auf dieser Seite:XPath 3.0 - Beispiel:
/Orte/Ort[1]/Mensch[1]/name => exactly-one()
<xsl:for-each
select="exactly-one(
/Orte/Ort[1]/Mensch[1]/vorname/text())">
<wert><xsl:value-of select="."/></wert>
</xsl:for-each>
Problematisch wird der Aufruf exactly-one(//Mensch/hobby/text()), der eine leere Sequenz generiert, was der Festlegung von exactly-one zuwider läuft und daher unzulässig ist.
<xsl:for-each
select="exactly-one(//Mensch/hobby/text())">
<wert>
<xsl:value-of select="."/>
</wert>
</xsl:for-each>
Prompt erhalten Sie einen netten Gruß vom System:
Fehlerlevel: fatal
FORG0005: An empty sequence is not allowed
as the first argument of exactly-one()
Ebenso problematisch wird der Aufruf exactly-one(//Mensch/vorname/text()), der eine Sequenz mit mehreren Items generiert, was der Festlegung von exactly-one ebenfalls zuwider läuft und daher unzulässig ist.
<xsl:for-each
select="exactly-one(//Mensch/vorname/text())">
<wert><xsl:value-of select="."/></wert>
</xsl:for-each>
Dann erhalten Sie eine Fehlermeldung vom System:
Fehlerlevel: fatal
FORG0005: A sequence of more than one item
is not allowed as the first argument of exactly-one()
(text("Hugo"), text("Helmut"), ...)
wg / 4. April 2020
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de