Wählen Sie einen Knoten basierend auf dem Wert eines anderen Knotens mit Hilfe einer xsl-Prädikat
Ähnliches problem auf diese Frage:
XPath: wählen Sie einen Knoten auf einen anderen Knoten?
Dem Objekt einen Knoten auswählen, basierend auf dem Wert von einem Geschwister-Knoten-in diesem Fall der Seitentitel Knoten basierend auf dem Wert der Pagetype-Knoten.
xpaths:
/dsQueryResponse/Rows/Row/@Title
/dsQueryResponse/Rows/Row/@Pagetype
/dsQueryResponse/Rows/Row/@Pagetitle
Xsl-nicht dass etwas zurückgegeben:
<xsl:value-of select= "/dsQueryResponse/Rows/Row[Pagetype='Parent']/@Pagetitle" />
Beispiel-xml:
<dsQueryResponse>
<Rows>
<Row>
<Title>1</Title>
<Pagetype>Parent</Pagetype>
<Pagetitle>title of page</Pagetitle>
</Row>
</Rows>
</dsQueryResponse>
Ziel ist es, die Werte der Seitentitel zurück, wenn Sie haben eine Pagetype Wert der "Eltern".
- Bitte zeigen Sie uns ein Beispiel von der XML-Eingabe und erklären Sie, welche Knoten, die Sie auswählen möchten. Ihre aktuelle Prädikat
[Pagetype='Parent']
Prüfungen für das Kind-element(s) der namePagetype
mit dem WertParent
. - Hinzugefügt Probe von xml und versuchte zu klären, den Knoten I wollen, um Sie auszuwählen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem @ - Zeichen kennzeichnet die Attribute eines Knoten. Also, wenn Sie wollen wieder den Wert von dem Attribut Pagetitle wo die Pagetype-Attribut ist gleich Eltern, die es Lesen sollten:
Eine hilfreiche Ressource benutze ich zum testen meiner XPATH ist http://www.xmlme.com/XpathTool.aspx
Pagetype
Attribut in es.Mit dem mitgelieferten XML-Dokument verwenden:
XSLT - basierten Nachweis:
wenn diese transformation wird angewendet auf das XML-Dokument:
der XPath-Ausdruck wird ausgewertet und alle (in diesem Fall nur einer) ausgewählten Knoten werden ausgegeben:
Hier, wie ich das problem zu verstehen: hier Finden Sie jede Zeile mit einem Kind-element Pagetype von "Eltern", die Anzeige mit dem Wert des untergeordneten Elements Seitentitel.
Meine Lösung: Erstellen Sie eine Knotenmenge, die alle Zeilen, die den Kriterien entsprechen, dann wählen Sie den Wert child-element Seitentitel.