Есть XML файл приблизительно такой структуры:
<?xml version="1.0" encoding="UTF-8"?>
<DeviceData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="DIGSIXML1-4.xsd">
<Settings>
<FunctionGroup Name="Данные энергосистемы 1">
<SettingPage Name="Парам ТТ/ТН">
<Parameter DAdr="0205" Name="Первичный номинальный ток ТТ" Type="Dec">
<Value>1000</Value>
<Comment Dimension="А" MinValue="10" MaxValue="5000" DefaultValue="1000"/>
</Parameter>
<Parameter DAdr="0206" Name="Вторичный номинальный ток ТТ" Type="Txt">
<Value>12922</Value>
<Comment Number="12921" Name="1А"/>
<Comment Number="12922" Name="5А"/>
<Comment DefaultValue="12921"/>
</Parameter>
<Parameter DAdr="0210" Name="U4 трансформатор напряжения подкл. как" Type="Txt">
<Value>12508</Value>
<Comment Number="12508" Name="Не подключен"/>
<Comment Number="12790" Name="Uдельта трансформатора напряжения"/>
<Comment DefaultValue="12508"/>
</Parameter>
</SettingPage>
</FunctionGroup>
</Settings>
</DeviceData>
Нужна библиотека для работы с XML, поддерживающая полноценные XPath запросы, конкретно нужно такое:
//Parameter[@DAdr="0206"]/Comment[@Number=//Parameter[@DAdr="0206"]/Value/text()]/@Name
т.е. сначала ищем элемент Parameter с атрибутом @DAdr="0206", потом среди его подэлементов Comment ищем такой, у которого атрибут @Number соответствует тексту подэлемента Value того же элемента Parameter и в самом конце берем значение атрибута @Name найденного элемента.
Т.е. вложенные запросы. Например это поддерживается в плагине XML Tools для Notepad++. Ни ElementTree, ни lxml этого не могут. Эти XPath запросы приходят из конфига, поэтому не получится искать элементы последовательно в коде.
Посоветуйте пожалуйста библиотеку для Python, пытался на гитхабе чего-то найти, но большую часть даже установить с ходу не получается.