Найти XPATH с пространством имен и на основе родительского элемента - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть следующий xml:

...
    <chapter>
        <start_time>00:01:04</start_time>
    </chapter>  
    <chapter>
        <start_time>00:01:05</start_time>
    </chapter>  
...

В настоящее время, чтобы получить start_times, который я делаю:

start_times = node.xpath("//t:start_time/text()", 
                   namespaces={'t':'http://example.com/namespace'})

Однако я также получаю start_times от не главыelements:

[00:00:01, 00:00:02, 00:01:04, 00:01:05]

Кроме того, по какой-то причине иск //t:chapter/start_time возвращает пустой результат.

Как бы получить только те start_times, у которых родительский элемент chapter

1 Ответ

1 голос
/ 20 февраля 2012

Сделайте ваш селектор более конкретным, например так:

start_times = node.xpath("//t:chapter/start_time/text()", 
                   namespaces={'t':'http://example.com/namespace'})
...