2016-07-26 71 views
0

我正在學習考試,我無法完全弄清楚我在這裏做錯了什麼。Xpath屬性和文本

我得到這個XML

<?xml version="1.0"?> 
<schema xmlns="" 
    xmlns:xsi="link-2" 
    xsi:schemeLocation="link-3"> 

    <wm-stats> 
     <wm jahr="2014"> 
      <teilnehmer platz="1">Deutschland</teilnehmer> 
      <teilnehmer platz="2">Argentinien</teilnehmer> 
      <teilnehmer platz="3">Niederlande</teilnehmer> 
     </wm> 

     <wm jahr="2010"> 
      <teilnehmer platz="1">Spanien</teilnehmer> 
      <teilnehmer platz="2">Holland</teilnehmer> 
      <teilnehmer platz="3">Deutschland</teilnehmer> 
     </wm> 

     <wm jahr="2006"> 
      <teilnehmer platz="1">Italien</teilnehmer> 
      <teilnehmer platz="2">Frankreich</teilnehmer> 
      <teilnehmer platz="3">Deutschland</teilnehmer> 
     </wm> 

     <record name="Rekordtorschütze"> 
      <person> Miroslav Klose </person> hat in Brasilien ... 
     </record> 

     <record name="Rekordweltmeisterschaften"> 
      <ort> Brasilien </ort> ist mit 5 Weltmeistersiegen ... 
     </record> 
    </wm-stats> 
</schema> 

我現在需要找到所有地方荷蘭是在參加一個冠軍,我知道我必須尋找這樣的事情// WM多年[@jahr]/teilnehmer [text()=「Holland」] 但是,我現在如何獲得jahr的價值?正確的節點將位於將雅爾2010年

+0

提示:你正在尋找'WM [...]/@ jahr' – Markus

回答

1

周圍的其他方法

//wm[teilnehmer = "Holland"]/@jahr 

,但你的做法是不是無法挽救的,無論是

//wm[@jahr]/teilnehmer[. ="Holland"]/../@jahr 

*注意:[@jahr]在實際上是多餘的此表達式

您可以隨時在XPath中向上(和橫向)導航。

看一看這個全面的圖像解釋各個XPath的導航軸可供選擇:https://our.umbraco.org/wiki/reference/xslt/xpath-axes-and-their-shortcuts/