xpath
Найти узлы с определенным атрибутом
Поиск…
Синтаксис
- Внутри конкретного узла
- / path to / element [@attribute_name]
- Где угодно в документе
- //*[@имя атрибута]
- Внутри конкретного узла с некоторым значением
- / path to / element [@ attribute_name = 'значение поиска]
- / path to / element [@ attribute_name = "значение поиска"]
- Везде в документе с некоторой ценностью
- // * [@ attribute_name = 'строка поиска]
- // * [@ attribute_name = "строка поиска"]
параметры
селектор | функция |
---|---|
@имя атрибута | Он выбирает значение атрибута для узла, если он присутствует |
замечания
Используя [@attribute_name], мы можем выбрать узлы, у которых есть атрибут независимо от значения.
Мы можем использовать любую из функций или комбинаций функций, таких как запуск и с нижним регистром, например, с этим селектором в соответствии с нашими потребностями.
Найти узлы с определенным атрибутом
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name]
или же
//*[@name]
ВЫХОД
<CelestialObject name="Earth" type="planet" />
<CelestialObject name="Sun" type="star" />
Найти узлы с определенным значением атрибута
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name='Sun']
или же
//*[@name='Sun']
ВЫХОД
<CelestialObject name="Sun" type="star" />
Найти узлы по подстроке, соответствующие значению атрибута
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(@name,'Ear')]
или же
//*[contains(@name,'Ear')]
Вместо одиночных кавычек можно использовать двойные кавычки:
/Galaxy/*[contains(@name, "Ear")]
ВЫХОД
<CelestialObject name="Earth" type="planet" />
Найти узлы по подстроке соответствия значения атрибута (без учета регистра)
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(lower-case(@name),'ear')]
или же
//*[contains(lower-case(@name),'ear')]
или, если строка в двойных кавычках:
//*[contains(lower-case(@name), "ear")]
ВЫХОД
<CelestialObject name="Earth" type="planet" />
Найти узлы подстрокой, соответствующей началу значения атрибута
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[starts-with(lower-case(@name),'ear')]
или же
//*[starts-with(lower-case(@name),'ear')]
ВЫХОД
<CelestialObject name="Earth" type="planet" />
Найти узлы подстрокой, соответствующей концу значения атрибута
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[ends-with(lower-case(@type),'tar')]
или же
//*[ends-with(lower-case(@type),'tar')]
ВЫХОД
<CelestialObject name="Sun" type="star" />
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow