2013-10-01 3 views
2

Возьмите XML-файл, как это:Xpath: Получить определенные значения

<games> 
    <game> 
     <place>xxx</place> 
     <date>2013-10-02</date> 
    </game> 
    <game> 
     <place>yyy   </place> 
     <date>2013-10-03</date> 
    </game> 
    <game> 
     <place>zzz</place> 
     <date>2013-10-03</date> 
    </game> 
    <game> 
     <place>aaa</place> 
     <date>2013-10-03</date> 
     <status>1</status> 
    </game> 
    <game> 
     <place>bbb</place> 
     <date>2013-10-03</date> 
     <status>9</status> 
    </game> 
</games> 

Теперь я не только должен знать, что «игра» имеет тег с именем «статус», но и то, что значение эти теги имеют (в этом примере: 1 и 9).

// игра/статус

только Leeds меня ко всем узлам с тегом «статус», но я не могу понять, как извлечь конкретный тег, просто попросить Значение. Может ли кто-нибудь помочь? Благодаря

+0

Чтобы иметь возможность ответить на это значимым образом, нам нужно знать, как вы используете выражения (ы) XPath - какой язык/инструментарий/приложение для программирования и т. Д. Похоже, вы просите двухэтапный здесь, сначала найдите элементы 'game', которые имеют« статус », а затем перейдут через них и извлекут значение« status »из каждого. Это не то, что вы можете сделать в одном выражении XPath. –

ответ

1

Ниже выражение даст вам результат:

/games/game[status]/status/text() 

/games/game[status] даст вам всю game узел, который имеет status узел. Затем /games/game[status]/status вы дадите только status узлам из выбранного узла game. Затем, наконец, верхний указатель поможет вам извлечь текстовые значения в узле состояния.

+1

Спасибо, '/ games/game [status]/status/text()' дайте мне все, что мне нужно. @Ian Roberts: Я использую python для извлечения данных и думал о двухэтапном процессе. Но ответ @Arup Rakshit облегчает. –

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