2016-11-03 3 views
0

У меня очень длинный XML-документ (строки 100k), и я хотел бы увидеть, содержится ли в нем строка. Вот как я это делаю сейчас:Оптимизация поиска строки в узле xml

'HDRENT' in etree.tostring(node) 

Есть ли более эффективный способ сделать это? Я не думаю, что необходимо распечатать весь XML-документ, если я могу сделать это более простым или быстрым способом.

+0

ли строка значения содержало жгуты тегов элемента, или где-нибудь в XML? – James

+0

@James нет, он находится в тексте xml. – David542

ответ

1

Try XPath:

node.xpath("count(//text()[contains(.,'HDRENT')]) > 0") 

это должно вернуть истину, если 'HRDENT' появляется в тексте HTML-теги, ложь в противном случае.

Если «HRDENT» появляется в атрибутах тега, используйте:

node.xpath("count(//*[@*[contains(.,'HDRENT')]]) > 0") 
+0

Что делать, если строка не находится в тексте элемента? Например, в моем случае это ' ...'. – David542

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

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