XSL-Bedingung zu prüfen, ob Knoten vorhanden ist
Möchte ich überprüfen ob in meinem XML-Knoten existiert, der hat das type-Attribut die Zeichenkette type_attachment_
.
Ist es eine richtige Weg, um es zu überprüfen?
<xsl:if test="count(*[contains(@Type, 'type_attachment_')]) > 0">
something
</xsl:if>
Ich weiß nicht, wie geschachtelte kann dieser Knoten sein. Es kann zum Beispiel so einfach ist das:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<hello-world>
<greeter>
<dsdsds>An XSLT Programmer
<greeting type = 'type_attachment_'>Hello, World!
</greeting>
</dsdsds>
</greeter>
</hello-world>
aber können auch diese Knoten verschachtelt in verschiedenen anderen Elementen.
- Könnte Sie klären, was Sie Fragen, bitte?
- Ja, das ist möglich. Können Sie ein Beispiel der xml?
- Ich verdeutlichte meine Frage ein bisschen.
- Verwenden
<xsl:if test="//*[contains(@Type, 'type_attachment')]">
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausdrücke, die passend zu den vorhandenen Knoten sind truthy. Ausdrücke, die mit keinem der Knoten übereinstimmt, werden falsy.
Daher, Sie brauchen nicht zu zählen die Menge von Knoten zurückgegeben. Einfach testen, um zu sehen, ob alles passt.
Finden Sie heraus, ein Beispiel:
AUSGABE: