Поиск…


Синтаксис

  1. Внутри конкретного узла
    • / path to / element [@attribute_name]
  2. Где угодно в документе
    • //*[@имя атрибута]
  3. Внутри конкретного узла с некоторым значением
    • / path to / element [@ attribute_name = 'значение поиска]
    • / path to / element [@ attribute_name = "значение поиска"]
  4. Везде в документе с некоторой ценностью
    • // * [@ 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