Xpath для получения имени и шаблона URL - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь выполнить Xpath для получения значения следующего для L7: Имя и L7: UrlPattern

<l7:Name>SERVICE List</l7:Name>
<l7:UrlPattern>/*</l7:UrlPattern>

request

   <?xml version="1.0" encoding="UTF-8"?>
<l7:List xmlns:l7="http://ns.l7tech.com/2010/04/gateway-management">
    <l7:Name>SERVICE List</l7:Name>
    <l7:Type>List</l7:Type>
    <l7:TimeStamp>2018-10-03T10:14:59.409-05:00</l7:TimeStamp>
    <l7:Link rel="self" uri="https://company/restman/1.0/services?sort=name&amp;order=desc"/>
    <l7:Link rel="template" uri="https://company/restman/1.0/services/template"/>
    <l7:Item>
        <l7:Name>Service not found Catch-all</l7:Name>
        <l7:Id>cd5853a68445a82e1384676c9fc8e7c1</l7:Id>
        <l7:Type>SERVICE</l7:Type>
        <l7:TimeStamp>2018-10-03T10:14:59.406-05:00</l7:TimeStamp>
        <l7:Link rel="self" uri="https://company/restman/1.0/services/cd5853a68445a82e1384676c9fc8e7c1"/>
        <l7:Resource>
            <l7:Service id="cd5853a68445a82e1384676c9fc8e7c1" version="2">
                <l7:ServiceDetail folderId="cd5853a68445a82e1384676c9fc8e6ae" id="cd5853a68445a82e1384676c9fc8e7c1" version="2">
                    <l7:Name>Service not found Catch-all</l7:Name>
                    <l7:Enabled>true</l7:Enabled>
                    <l7:ServiceMappings>
                        <l7:HttpMapping>
                            <l7:UrlPattern>/*</l7:UrlPattern>
                            <l7:Verbs>
                                <l7:Verb>GET</l7:Verb>
                                <l7:Verb>POST</l7:Verb>
                                <l7:Verb>PUT</l7:Verb>
                                <l7:Verb>HEAD</l7:Verb>
                            </l7:Verbs>
                        </l7:HttpMapping>
                    </l7:ServiceMappings>
                </l7:ServiceDetail>
            </l7:Service>
        </l7:Resource> 
    </l7:Item>  
</l7:List>

Xpath, который я пробовал

/l7:List/l7:Item//*[self::l7:Name or self::l7:UrlPattern]/text()

Это дает мне вывод

<?xml version="1.0" encoding="UTF-8"?>
<result>
Service not found Catch-all
Service not found Catch-all
/*
</result>

Мне было интересно, как получить только одно имя и связанный URLPatternдля этого.

Как-то так?

<?xml version="1.0" encoding="UTF-8"?>
<result>
Service not found Catch-all
/*
</result>

Есть предложения?

1 Ответ

0 голосов
/ 04 октября 2018

Попытайтесь быть более конкретным, например,

/l7:List/l7:Name/text() | /l7:List/l7:Item//l7:UrlPattern/text()

Демонстрационная версия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...