Unten zwei Abschnitte einer XML-Datei.Wählen Sie einen einzelnen Wert mit mehreren Übereinstimmungen aus
Ich versuche, einen Knoten mit dem Namen cutSeven zu vergleichen und seinen ersten childnodes-Text auszuwählen.
Der passende Pfad ist unbekannt, daher hat jedes XML ähnliche Informationen in verschiedenen Positionen.
Ich arbeite mit mehreren XMLs einschließlich dieser Informationen und ich bin auf dem Weg, um eine automatisch aktualisierbare Übersicht dafür zu erstellen.
XML-Input-
<Transform>
<param name="originalHeader">
<path>$header</path>
</param>
<param name="cutSeven">
<path>"fi.siikjin.exitorder.seasam.accesscontrol.k1"</path>
</param>
</Transform>
.
.
.
<Transform>
<param name="originalHeader">
<path>$header</path>
</param>
<param name="cutSeven">
<path>"fi.siikjin.exitorder.seasam.accesscontrol.k1.accesscontrol_k1.accesscontrol"</path>
</param>
</Transform>
Mein Ausdruck
<xsl:value-of select="//@name[normalize-space(.) = 'cutSeven']/parent::*[1]"/>
bringt mich zur Ausgabe:
<path>"fi.siikjin.exitorder.seasam.sec.accesscontrol.k1"</path>
<path>"fi.siikjin.exitorder.seasam.sec.accesscontrol.k1.accesscontrol_k1.accesscontrol"</path>
Erwartet:
<path>"fi.siikjin.exitorder.seasam.accesscontrol.k1"</path>
Wie kann ich nur den ersten übereinstimmenden Knoten auswählen und weitere Übereinstimmungen ignorieren? Oder, laut mir, gib nur 1 Wert aus. Danke in Beratung!
Vielen Dank! '(// @ name [normalize-space (.) = 'cutSeven']) [1]/parent :: *' arbeitet für mich – MypR