2016-04-25 1 views
2

У меня есть xml-файлы, которые я пытаюсь обработать. К сожалению, у меня нет полного доступа ко всем различным элементам, которые представляют собой все возможные деревьяМогу ли я использовать xpath (в lxml), чтобы найти имена тегов, неизвестных в начале?

так, например, я мог бы иметь документ, который структурирован

<typeOfBook> 
    <isMystery>True</isMystery> 
</typeofBook> 

достаточно легко, но когда я смотрю на контрольный список, который использовался при первоначальном создании этих файлов, я вижу категории в разделе Тип книги, такие как Reference Spirituality. Учитывая мой опыт с Тайной я пытаюсь написать выражение XPath

я строю свой XPath на основе этого

'//typeofbook/isreferencespirituality/text()' 

тогда я обнаружил, что фактический тег они использовали был isrefspirit, таким образом, правильный XPath является

'//typeofbook/isrefspirit/text()' 

Учитывая количество файлов и возможное количество категорий, которые я пытаюсь изучить, есть инструмент для поиска xpath - Я хотел бы пропустить все мои файлы один раз, чтобы найти все теги после типа книги так что я могу правильно классифицировать текст, который возвращается

в основном я хотел бы сделать что-то вроде

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

'//typeofbook/*/' 
+0

'«// typeofbook/*» 'будет возвращать все теги внутри тегов typeofbook. –

+1

wow на правильном пути, но я бросил его - спасибо сообщение в качестве ответа, и я буду считать вас. – PyNEwbie

ответ

1

* используется как wildcard, так что только //typeofbook/*' получит все дочерние элементы внутри тегов typeofbook.

Есть несколько других вещей, неизвестных узлов, которые могут оказаться полезными:

@* # any attribute 
node() # any node at all