Значение атрибута вывода с XPath 1.0

Пример:

 <div class='known' name='unknown'>

Как я могу вернуться name значение атрибута ("неизвестно") на основе известного class значение атрибута, с XPath 1.0?

В поисках ответа я обнаружил, что в XPath 2.0 есть инструмент для этого:

 //div[@class='known']/@name/string()

Но не могу найти аналог XPath 1.0

1 ответ

Решение

Используйте:

string(//div[@class='known']/@name)

Это производит строковое значение name атрибут первого в порядке документа div элемент такой, что строковое значение его class атрибут "unknown",

Если //div[@class='known'] выбирает более одного div элемент, и вы хотите, чтобы значение name атрибут для выбранного k-го div, используйте:

string((//div[@class='known'])[$k]/@name)

где $k должен быть заменен на желаемое целое число, или иначе переменная $k должен быть в контексте оценки для выражения XPath.

Другие вопросы по тегам