2016-08-24 3 views
1

У меня есть файл XML, который выглядит как this. Соответствующий бит это:pyquery (lxml) не находит тег в хорошо структурированном XML-документе?

<reference> 
    <citation>Vander Wal JS, Gang CH, Griffing GT, Gadde KM. Escitalopram for treatment of night eating syndrome: a 12-week, randomized, placebo-controlled trial. J Clin Psychopharmacol. 2012 Jun;32(3):341-5. doi: 10.1097/JCP.0b013e318254239b.</citation> 
    <PMID>22544016</PMID> 
</reference> 

Я пытаюсь найти значение PMID поля, используя PyQuery для разбора XML:

from pyquery import PyQuery as pq 

    text = open(f, 'r').read() 
    d = pq(text) 
    data = {}  
    data['nct_id'] = d('nct_id').text() 

    print d('reference') 
    reference = d('reference') 
    print reference('PMID') 
    data['pmid'] = reference('PMID').text() 

    print data['PMID'] 

Почему это не работает? В консоли я вижу полное содержание reference от первого оператора печати, а затем два пустых значений:

<reference> 
    <citation>Vander Wal JS, Gang CH, Griffing GT, Gadde KM. Escitalopram for treatment of night eating syndrome: a 12-week, randomized, placebo-controlled trial. J Clin Psychopharmacol. 2012 Jun;32(3):341-5. doi: 10.1097/JCP.0b013e318254239b.</citation> 
    <PMID>22544016</PMID> 
    </reference> 

я могу найти другие узлы листа в документе (например, nct_id) просто отлично используя .find(), в качестве примера показывает код.

Неужели PyQuery не любит теги верхнего регистра?

ответ

0

Вы позволяющее задать анализатор использовать и он будет работать:

d = pq(text, parser='xml') 
+0

Это сделал это! Благодаря! – Richard

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

  • Нет связанных вопросов^_^