я получил следующую структуру XML и нужно, чтобы получить значение вXPATH - Путь к узлу с условиями на разных уровнях
<VALUE><![CDATA[PRUEBAS BPM]]></VALUE>
мне нужно проверить на двух условиях:
- Получить к узлу поля [NAME = "зависимости"]
- Получить на поле [NAME = "имя"]
Мой XPATH фактически написан как т его
/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"]/PRIMITIVE/VALUE/text()
Однако, он не приносит никаких данных. Неужели мой XPATH неправильно написан? Как я могу отсортировать доступ к этой информации в моем xml?
Любая помощь будет высоко оценена.
Вот мой XML структура
<TRAIL>
<ENTITY>
<FIELD>
<NAME>dependency</NAME>
<ENTITY>
<FIELD>
<NAME>codigo</NAME>
<PRIMITIVE>
<VALUE><![CDATA[906]]></VALUE>
</PRIMITIVE>
</FIELD>
<FIELD>
<NAME>name</NAME>
<PRIMITIVE>
<VALUE><![CDATA[PRUEBAS BPM]]></VALUE>
</PRIMITIVE>
</FIELD>
</ENTITY>
</FIELD>
</ENTITY>
</TRAIL>
Заранее спасибо за вашу помощь!
В качестве дополнительного я должен добавить Я использую этот XPATH для получения информации непосредственно из базы данных. Это мой SQL заявление (дельта колонок таблицы, содержащий XML)
SELECT XPATH('(/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"])/PRIMITIVE/VALUE/text()', CAST(SUBSTRING(delta FROM position('<TRAIL>' IN delta) FOR char_length(delta)) AS ml)) FROM aud_huella_expediente
у вас нет необходимости **) ** в вашем xpath после '/ ENTITY/FIELD [NAME =" name "]' –
Так оно и было! Я исправил его в своем посте – Tsuru