2017-10-31 1 views
0

Dies ist das erste Mal, dass ich XML-Daten handhabe.Xpath-Abfrage für 1260 in: <Rep D = "SSE" F = "10"> 1260</Rep> in Talend

Meine Daten sieht wie folgt aus:

<Sp> 
    <D> 
     <Lo> 
      <Period> 
       <Rep D="SSE" F="10">1260</Rep> 
      </Period> 
     </Lo> 
    </D> 
</Sp> 

Ich suche die XPath-Abfrage für den Wert 1260.

Ich bin mit Talend und Looping um die XPath, die in Rep endet ich. konnten alle anderen Daten abrufen, zum Beispiel für D, die XPath-Abfrage ist @D, aber wie bekomme ich den Wert 1260?

Irgendwelche Ideen?

Vielen Dank im Voraus!

Antwort

1

Dieser XPath,

//Rep[.='1260'] 

alle Rep Elemente mit einem String-Wert von 1260 wählen.

Dieser XPath,

//Rep[@D='SSE'] 

wählt alle Rep Elemente mit einem D Attributwert gleich SSE.

Es ist es 1260 selbst Sie nach, dieser XPath,

//Rep[@D='SSE']/text() 

werden alle Textknoten Kinder der oben Rep Elemente auswählen.

+0

Danke für Ihre Antwort. Die Werte ändern sich ständig und unabhängig davon, was die Werte für D oder F sind, möchte ich die Nummer vor auswählen. In diesem Beispiel ist es 1260, aber es ändert sich und ist unabhängig. Gibt es eine Möglichkeit, diesen Wert jedes Mal zu erfassen? – Sunny

+0

'// Rep/text()' wählt den Textknoten unter allen 'Rep'-Elementen im Dokument aus, unabhängig von' @ D', '@F' und dem Zeichenfolgenwert von' Rep'. Ist es das was du willst? – kjhughes

+0

// Rep/text() funktionierte nicht richtig für mich, aber ich denke, das ist, weil ich in Talend bereits Rep umgehe ... Am Ende funktionierte 'text()' für mich. Danke für Ihre Hilfe! – Sunny

Verwandte Themen