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