2015-10-13 5 views
0

У меня есть XML-файл, и я хочу выбрать заголовки, год и цену со всех компакт-дисков из ЕС, имеющих цену от 7 до 10. Я попытался таким образом //CD[contains(COUNTRY,"EU")], но отображает все элементы из CD узлов. как заставить XPath отображать только определенные элементы (TITLE, YEAR и PRICE).XPath, выбрав несколько узлов

<?xml version="1.0" encoding="UTF-8"?> 
<CATALOG> 
    <CD> 
     <TITLE lang="eng">Empire Burlesque</TITLE> 
     <ARTIST>Bob Dylan</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>Columbia</COMPANY> 
     <PRICE>10.90</PRICE> 
     <YEAR>1985</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Hide your heart</TITLE> 
     <ARTIST>Bonnie Tyler</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>CBS Records</COMPANY> 
     <PRICE>9.90</PRICE> 
     <YEAR>1988</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Greatest Hits</TITLE> 
     <ARTIST>Dolly Parton</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>RCA</COMPANY> 
     <PRICE>9.90</PRICE> 
     <YEAR>1982</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Still got the blues</TITLE> 
     <ARTIST>Gary Moore</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Virgin records</COMPANY> 
     <PRICE>10.20</PRICE> 
     <YEAR>1990</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="ita">Eros</TITLE> 
     <ARTIST>Eros Ramazzotti</ARTIST> 
     <COUNTRY>EU</COUNTRY> 
     <COMPANY>BMG</COMPANY> 
     <PRICE>9.90</PRICE> 
     <YEAR>1997</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">One night only</TITLE> 
     <ARTIST>Bee Gees</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Polydor</COMPANY> 
     <PRICE>10.90</PRICE> 
     <YEAR>1998</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Sylvias Mother</TITLE> 
     <ARTIST>Dr.Hook</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>CBS</COMPANY> 
     <PRICE>8.10</PRICE> 
     <YEAR>1973</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Maggie May</TITLE> 
     <ARTIST>Rod Stewart</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Pickwick</COMPANY> 
     <PRICE>8.50</PRICE> 
     <YEAR>1990</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="ita">Romanza</TITLE> 
     <ARTIST>Andrea Bocelli</ARTIST> 
     <COUNTRY>EU</COUNTRY> 
     <COMPANY>Polydor</COMPANY> 
     <PRICE>10.80</PRICE> 
     <YEAR>1996</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">When a man loves a woman</TITLE> 
     <ARTIST>Percy Sledge</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>Atlantic</COMPANY> 
     <PRICE>8.70</PRICE> 
     <YEAR>1987</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Black angel</TITLE> 
     <ARTIST>Savage Rose</ARTIST> 
     <COUNTRY>EU</COUNTRY> 
     <COMPANY>Mega</COMPANY> 
     <PRICE>10.90</PRICE> 
     <YEAR>1995</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">1999 Grammy Nominees</TITLE> 
     <ARTIST>Many</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>Grammy</COMPANY> 
     <PRICE>10.20</PRICE> 
     <YEAR>1999</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">For the good times</TITLE> 
     <ARTIST>Kenny Rogers</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Mucik Master</COMPANY> 
     <PRICE>8.70</PRICE> 
     <YEAR>1995</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Big Willie style</TITLE> 
     <ARTIST>Will Smith</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>Columbia</COMPANY> 
     <PRICE>9.90</PRICE> 
     <YEAR>1997</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Tupelo Honey</TITLE> 
     <ARTIST>Van Morrison</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Polydor</COMPANY> 
     <PRICE>8.20</PRICE> 
     <YEAR>1971</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Soulsville</TITLE> 
     <ARTIST>Jorn Hoel</ARTIST> 
     <COUNTRY>Norway</COUNTRY> 
     <COMPANY>WEA</COMPANY> 
     <PRICE>7.90</PRICE> 
     <YEAR>1996</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">The very best of</TITLE> 
     <ARTIST>Cat Stevens</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Island</COMPANY> 
     <PRICE>8.90</PRICE> 
     <YEAR>1990</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Stop</TITLE> 
     <ARTIST>Sam Brown</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>A and M</COMPANY> 
     <PRICE>8.90</PRICE> 
     <YEAR>1988</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Bridge of Spies</TITLE> 
     <ARTIST>T'Pau</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Siren</COMPANY> 
     <PRICE>7.90</PRICE> 
     <YEAR>1987</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Private Dancer</TITLE> 
     <ARTIST>Tina Turner</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>Capitol</COMPANY> 
     <PRICE>8.90</PRICE> 
     <YEAR>1983</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="dan">Midt om natten</TITLE> 
     <ARTIST>Kim Larsen</ARTIST> 
     <COUNTRY>EU</COUNTRY> 
     <COMPANY>Medley</COMPANY> 
     <PRICE>7.80</PRICE> 
     <YEAR>1983</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="ita">Pavarotti Gala Concert</TITLE> 
     <ARTIST>Luciano Pavarotti</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>DECCA</COMPANY> 
     <PRICE>9.90</PRICE> 
     <YEAR>1991</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">The dock of the bay</TITLE> 
     <ARTIST>Otis Redding</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>Atlantic</COMPANY> 
     <PRICE>7.90</PRICE> 
     <YEAR>1987</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Picture book</TITLE> 
     <ARTIST>Simply Red</ARTIST> 
     <COUNTRY>EU</COUNTRY> 
     <COMPANY>Elektra</COMPANY> 
     <PRICE>7.20</PRICE> 
     <YEAR>1985</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Red</TITLE> 
     <ARTIST>The Communards</ARTIST> 
     <COUNTRY>UK</COUNTRY> 
     <COMPANY>London</COMPANY> 
     <PRICE>7.80</PRICE> 
     <YEAR>1987</YEAR> 
    </CD> 
    <CD> 
     <TITLE lang="eng">Unchain my heart</TITLE> 
     <ARTIST>Joe Cocker</ARTIST> 
     <COUNTRY>USA</COUNTRY> 
     <COMPANY>EMI</COMPANY> 
     <PRICE>8.20</PRICE> 
     <YEAR>1987</YEAR> 
    </CD> 
</CATALOG> 

ответ

1

Try:

//CD[COUNTRY/text()="EU"]/*[self::TITLE or self::YEAR or self::PRICE] 

Он выбирает только те CD S, которые имеют EU в COUNTRY и затем выбирает всех детей, имеющих имя тега, равное TITLE или YEAR или PRICE.

+0

Отлично, спасибо !!!! –

Смежные вопросы