Я выполнил поиск всех узлов, у которых есть атрибут, содержащий (подстроку) строку.Эти узлы могут быть найдены на разных уровнях дерева, иногда на 5 или 6 уровнях.Я хотел бы знать, какому родительскому / родительскому узлу они соответствуют на указанном уровне, глубиной 2 уровня.Результат только для поиска должен быть намного больше, чем результаты для соответствующих родителей.
РЕДАКТИРОВАТЬ, чтобы включить код: /xs:schema/xs:element/descendant::node()/@*[starts-with(., 'my-search-string-here')]
РЕДАКТИРОВАТЬ, чтобы уточнить мои намерения:
Когда я выполняю приведенный выше Xpath, иногда получаются
/xs:schema/xs:element/xs:complexType/xs:attribute
или /xs:schema/xs:element/xs:complexType/xs:sequence/xs:element
или /xs:schema/xs:element/xs:complexType/xs:complexContent/xs:extension/xs:sequence/xs:element
Эти результаты указывают место в схеме, где я добавил код, специфичный для приложения.Однако мне нужно удалить этот код сейчас.Я создаю схему «адаптера», которая будет redefine
исходная схема (нетронутой) и import
моя схема.Строка, которую я ищу, - мой префикс.Что мне нужно, так это @name схемы / xs: schema / node (), в которой находится префикс, чтобы я мог создать новую схему, определяющую эти элементы.Они будут импортированы в адаптер и переопределят другую схему (которую я не должен изменять).
Чтобы повторить, мне нужно найти все атрибуты (потомки / xs: schema / xs: element)для префикса, а затем получите соответствующее / xs: schema / xs: element / @ name для каждого совпадения с поиском.