2016-06-29 18 views
0

Ich benutze Saxon HE 9.6.0.6 und versuche XPath zu verwenden, um den Wert eines Attributs abzurufen.Wie bekomme ich den Wert eines Attributs mit XPath und Saxon

die XML-und Abfrage unter Gegeben:

<Pol> 
    <ISR> 
    <Code Val='Test1'/> 
    <Text Val='test 1'/> 
    </ISR> 
    <ISR> 
    <Code Val = 'Test2' /> 
    <Text Val = 'test 2' /> 
    </ISR> 
</Pol> 

//Pol/ISR/Code[@Val='Test2']/../Text/@Val 

Das gibt mir das Attribut ("Val = 'test 2'"), aber ich mag den Wert (d 'test 2'). Ich denke, dass ich xpath-Funktionen verwenden muss, aber nicht sicher, wie man sie in Saxon hinzufügt.

Antwort

1

Sie können string(//Pol/ISR/Code[@Val='Test2']/../Text/@Val) verwenden, wenn Sie sicher sind, dass Sie nur ein oder null Attribute ausgewählt haben, oder //Pol/ISR/Code[@Val='Test2']/../Text/@Val/string(), um eine Sequenz von Zeichenfolgenwerten auszuwählen.

+0

Aus irgendeinem Grund funktioniert string() nicht. Ich habe auch versucht, fn: string und den Fn-Namespace zu importieren. – Neil

+0

Bitte erläutern Sie, in welcher Weise der Vorschlag nicht funktioniert, d. H. Wenn Sie einen Fehler erhalten, wenn ja, welcher, wie Sie Saxon verwenden, um XPath zu bewerten. –

+0

Das Ergebnis von Evaluate ist null. – Neil