2013-01-17 106 views
0

這是一個xpath問題, 我看起來很喜歡這個xml文件,在xml中有幾個這些藝術家。如何獲取其中一個子元素已知的XML元素的其他子元素?

<lib> 
    <artist> 
     <name>Katy Perry</name> 
     <album> 
      <name>The Official Uk Top 40 Singles Chart 27-05-2012</name> 
      <file> 
      <name>37 Katy Perry - Part Of Me.mp3</name> 
      </file> 
     </album> 
     <album> 
      <name>Album name 2</name> 
      <file> 
      <name>whatever.mp3</name> 
      </file> 
     </album> 
    </artist> 
    ... 
</lib> 

我怎樣才能給出使用XPath的藝術家姓名的藝術家的所有專輯?

回答

0

這將是這樣的:

/lib/artist[name = 'Katy Perry']/album 

確實爲你想要什麼工作要做?

要考慮領導或單詞之間尾隨空格,或意外的空間,你應該能夠做到以下幾點:

/lib/artist[normalize-space(name) = 'Katy Perry']/album 
+0

我想我們可以用方括號的屬性?我可能是錯的,我會試試看。 – Ahmed

+0

不,方括號(也稱爲謂詞)用於過濾表達式。屬性用'@'表示。 – JLRishe

+0

謝謝,它工作正如我所料,除非名稱元素或前導/尾隨空格中有換行符,那麼它不起作用..我可以修改XML生成任何建議嗎? – Ahmed